Ну то есть вы не будете возражать, если кто-то начнет призывать убить вас за ваши безумные идеи? Если человек не попытался сам проломить вам череп кирпичом, но активно призывает сделать это окружающих — это нормально и допустимо?
Но олимпиады проводите не вы, и у тех, кто их проводит, мнение от вашего отличается.
А что не так с питоном? Для начального обучения его вполне можно использовать.
Конечно это не проблема паскаля, но это та реальность, с которой надо считаться. В принципе обучать программированию на паскале наверное неплохо, но если говорить про олимпиады, то вот только на прошлой неделе у сына олимпиада по информатике была — на тимусе. Да, и компилятор С++ там вполне современный, с поддержкой С++14.
Ну и конечно реальная разработка программ от олимпиадного программирования очень сильно отличается. Но паскаль также используют сильно реже, чем С++.
Ну не знаю, какая цель, но задачи, решаемые с использованием ассоциативных массивов, на олимпиадах бывают. И задачи, в которых решение на питоне не укладывается в лимит времени, тоже встречаются. А вот в задачах, где нужны операции со строками, питон может оказаться удобнее С++.
Когда в олимпиадной задаче нужен std::map или даже просто надо отсортировать массив, паскаль резко сливает С++ и питону. А вот олимпиадных задач, где необходимы были указатели, я что-то не припомню.
Ага, ругательства выкидываем. Потом кто-то смотрит в этот код в первый раз, лезет в даташит и не понимает, почему в коде написан какой-то бред, несоответствующий документации.
Ошибка в том, что деньги богатых не лежат на счетах. Да и не деньги это вообще, а акции компаний.
Даже если их «взять и поделить», через некоторое время всё вернется на круги своя — кто-то эти акции по дешевке продаст, прожрет и будет опять стонать, что зарплата у него низкая, а кто-то скупит и потом будет жить на дивиденды.
freq[256] = 1;
c1 = 256;
for (;;)
{
c2 = -1;
v = 1000000000L;
for (i = 0; i <= 256; i++)
{
if (freq[i] != 0 && freq[i] <= v && i != c1)
{
v = freq[i];
c2 = i;
}
}
/* Done if we've merged everything into one frequency */
if (c2 < 0)
break;
/* Else merge the two counts/trees */
freq[c1] += freq[c2];
freq[c2] = 0;
/* Increment the codesize of everything in c1's tree branch */
codesize[c1]++;
while (others[c1] >= 0)
{
c1 = others[c1];
codesize[c1]++;
}
others[c1] = c2; /* chain c2 onto c1's tree branch */
/* Increment the codesize of everything in c2's tree branch */
codesize[c2]++;
while (others[c2] >= 0)
{
c2 = others[c2];
codesize[c2]++;
}
v = 1000000000L;
for (i = 0; i <= 256; i++)
{
if (freq[i] != 0 && freq[i] <= v)
{
v = freq[i];
c1 = i;
}
}
}
На самом деле, вместо 1000000000L там должно быть что-то типа Int64.MaxValue, не должно быть в массиве элементов больше, чем это значение.
Но это не мешает проинициализировать с1 значением 256. И эту инициализацию можно даже вынести из внешнего цикла, а сам цикл поиска значения с1 унести в самый конец этого самого внешнего «бесконечного» цикла. Вот тогда и получится определить с1 на первом проходе без цикла.
Если рассматривать краткосрочные спекуляции на настоящей бирже (не форекс-кухни или бинарные опционы), то это игра с нулевой суммой — кто-то выиграл то, что кто-то другой проиграл. Так что если выигрышные стратегии существуют, то раскрывать их — значит отдавать часть своего выигрыша другим. Так что если кто-то обещает вам рассказать о выигрышной стратегии — он либо врет, либо дурак, не понимающий, что отдает свой потенциальный выигрыш. Но маловероятно, что дурак нашел выигрышную стратегию. Значит точно врет.
Это не относится к долговременным инвестициям — на длинных интервалах можно доходность немножко выше банковского депозита.
А что не так с питоном? Для начального обучения его вполне можно использовать.
Ну и конечно реальная разработка программ от олимпиадного программирования очень сильно отличается. Но паскаль также используют сильно реже, чем С++.
Даже если их «взять и поделить», через некоторое время всё вернется на круги своя — кто-то эти акции по дешевке продаст, прожрет и будет опять стонать, что зарплата у него низкая, а кто-то скупит и потом будет жить на дивиденды.
Но это не мешает проинициализировать с1 значением 256. И эту инициализацию можно даже вынести из внешнего цикла, а сам цикл поиска значения с1 унести в самый конец этого самого внешнего «бесконечного» цикла. Вот тогда и получится определить с1 на первом проходе без цикла.
Это не относится к долговременным инвестициям — на длинных интервалах можно доходность немножко выше банковского депозита.