Имя: Пароль:
IT
 
Яндекс проводит чемпионат по программированию
0 Escander
 
06.06.13
17:10
1. Нет 78% (7)
2. Приму участие обязательно 11% (1)
3. Возможно поучаствую 11% (1)
Всего мнений: 9

Ссылка на привила:
http://algorithm.contest.yandex.ru/rules/
перечень языков: http://algorithm.contest.yandex.ru/compilers/

из местных кто-то примет участие или все настолько ленивы?
314 sda553
 
07.07.13
15:25
первое место успело за 9 минут, мгновенно вспомнить про эрдеша-штрауса, решить вторую задачу, сделать код для прекалька, запустить (что более двух минут), сделать код с прекальком, отослать.
315 NS
 
07.07.13
15:31
(314) Для решения второй задачи не надо вспоминать про Эрдера-штрауса.
Достаточно предположить что разложение всегда есть, запустить тест до 15000, и убедиться в этом.

На codeforce есть пост от одного из решивших, он ничего про эрдера-штрауса не знал.

И повторю - оба решивших сделали без прекалка.
316 NS
 
07.07.13
15:32
Про 9 минут, мгновенно и т.д. - вообще ничего не понял.
317 NS
 
07.07.13
15:35
Первое место, кстати - всего-лишь призер чемпионата мира.
Странно думать что призеру чемпионата мира недостаточно 10 минут на каждую из данных задач.
318 sda553
 
07.07.13
15:35
первое место, отправило задача А на 25-ой минуте, а задачу Б на 34-ой. Разница в 9 минут
319 NS
 
07.07.13
15:37
(318) И чего в этом странного?
320 NS
 
07.07.13
15:38
321 sda553
 
07.07.13
15:40
(319) в том что у меня решение этой задачи, причем с невписывающимся в таймлайн временем исполнения заняло полдня.

Отсюда вопрос, смысл мне лезть в такой чемпионат. Я вижу, что я опытный программист, и способен решить любую из этих задач, но за 10 минут я это сделать не могу
322 NS
 
07.07.13
15:47
(321) Считается что в спортивном программировании чемпионы пишут примерно в 20 раз быстрее середнячков. Середнячков олимпиадного программирования, имеющих опыт и достижения. :) Насчет шансов выйти в финал я написал в самом начале - абсолютно без шансов, человеку не имеющему опыта в олимпиадном программировании. Это примерно то-же самое что шашист выучит правила шахмат, и тут-же захочет выйти в финал ЧМ.
А вот шансы на футболку например у меня есть.
323 NS
 
07.07.13
15:49
Ну и возможность оценить свои силы.
324 NS
 
07.07.13
15:49
(321) В смысле способен решить любую из этих задач?
Вторую ты не решил.
325 sda553
 
07.07.13
15:54
(324) Почему же, я просто не захотел реализовывать прекальк, т.к. не нащел интересным это делать. Или у тебя сомнения, что я прекальк map не смогу сделать?
А то решение, что у меня есть, легко спосрбно такой прекальк сформировать....секунд за 15
Из его решения я понял, что надо запастись на чемпионат прекальком простых чисел, где нибудь до миллиона.
326 NS
 
07.07.13
15:57
(325) Нет, ты не смог как он уложить в две секунды без прекалка.
Не нужен прекалк простых чисел. А нужна всего-лишь заготовленная процедура факторизации. Которая есть у всех сильных олимпиадных программистов.
Хотя на результат она особо не влияет. Готов поспорить что за две минуты любой из чемпионов легко напишет её с нуля.
А поиск простых чисел напишет с нуля за минуту.
327 sda553
 
07.07.13
16:02
(326) Я и не говорил, что решу задачу как он, без прекалька.
Меня вообще удивляет, что его решение прокатило в таймлайн. Оно разве что для 24k+1 проканает
328 NS
 
07.07.13
16:12
(327) В смысле? Я тебя не понимаю. Как ты считал сколько времени занимает его решение? У него за десятую долю секунду сосчитало для всех чисел до 15000.
Проверил - поиск простых чисел Эратосфеном и я за минуту напишу. Поиск всех простых до миллиона занимает тысячную долю секунды.
329 NS
 
07.07.13
16:14
import java.io.*;
import java.util.*;

public class z2 {
   public static void main(String[] args) throws IOException {
       PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
       boolean[] a = new boolean[1000000];
       Arrays.fill(a, true);
       int ch=0;
       for (int i = 2; i < 1000000; i++)
           if (a[i]) {
               //out.print(i); out.print(' ');
               ch++;
               for (int j = i + i; j < 1000000; j += i)
                   a[j] = false;
           }
       out.println(ch);
       out.flush();
   }
}

78498 простых чисел до миллиона.
330 NS
 
07.07.13
16:22
Имея простые числа написать быструю факторизацию - еще 1 минута писанины.
331 NS
 
07.07.13
18:17
Вот такая кривизна на Java у меня во второй задаче зашла (время решения одна секунда)
332 NS
 
07.07.13
18:17
import java.io.*;
import java.util.*;

public class z2 {
   public static int[] p = new int[100000];

   public static long res(long m, long n, long c, long k, int nom) {
       if (k >= n * c)
           return 0;
       if ((k + c * n) % (4 * c - n) == 0)
           return k;
       while (p[nom] <= n) {
           int ch = 0;
           long p1 = p[nom];
           long m1 = m;
           while (m1 % p1 == 0) {
               ch++;
               m1 /= p1;
           }
           m1 = m / p1;
           long k1 = k * p1;
           for (int i = 1; i <= ch; i++) {
               long l = res(m1, n, c, k1, nom + 1);
               if (l > 0)
                   return l;
               m1 /= p1;
               k1 *= p1;
           }
           nom++;
       }
       return 0;
   }

   public static void main(String[] args) throws IOException {
       File file = new File("fraction.in");
       File file1 = new File("fraction.out");
       FileOutputStream fos = new FileOutputStream(file1);

       Scanner in = new Scanner(file);
       PrintWriter out = new PrintWriter(new OutputStreamWriter(fos));
       // Scanner in=new Scanner(System.in);
       // PrintWriter out = new PrintWriter(new
       // OutputStreamWriter(System.out));
       boolean[] a = new boolean[100000];
       Arrays.fill(a, true);
       int ch = 0;
       for (int i = 2; i < 100000; i++)
           if (a[i]) {
               p[ch] = i;
               ch++;
               for (int j = i + i; j < 100000; j += i)
                   a[j] = false;
           }
       long[] r1 = new long[15001];
       long[] r2 = new long[15001];
       long[] r3 = new long[15001];
       Arrays.fill(r1, 0);
       Arrays.fill(r2, 0);
       Arrays.fill(r3, 0);
       for (int i = 4; i <= 15000; i++)
           if (r1[i] == 0) {
               long n = i;
               for (long c = n / 4; c <= 3 * n / 4; c++) {

                   if (4 * c > n) {
                       long l = res(n * c * n * c, n, c, 1, 0);
                       if (l > 0) {
                           r1[i] = ((n * n * c * c / l + c * n) / (4 * c - n));
                           r2[i] = ((l + c * n) / (4 * c - n));
                           r3[i] = c;
                           for (int j = i + i; j <= 15000; j += i)
                               if (r1[j] == 0) {
                                   r1[j] = r1[i] * j / i;
                                   r2[j] = r2[i] * j / i;
                                   r3[j] = r3[i] * j / i;
                               }
                           break;
                       }
                   }
               }

           }
       int k = in.nextInt();
       for (int i = 0; i < k; i++) {
           int pp = in.nextInt();
           out.print(r1[pp]);
           out.print(' ');
           out.print(r2[pp]);
           out.print(' ');
           out.println(r3[pp]);
       }
       out.flush();
       out.close();
       in.close();
   }
}
333 NS
 
07.07.13
18:22
вру, намного быстрее секунды, так как в секунду вошел ввод/вывод. И такое решение если нет разложения - это увидит, и даст правильный ответ.
334 NS
 
07.07.13
22:54
Кому интересно, четвертая задача.
На самом деле проще первой.
Решается "в лоб", полным перебором.
Вывод результата сделал "методом треугольника"
Такой используется для вывода PV в шахматных программах.
335 NS
 
07.07.13
22:55
import java.io.*;
import java.util.*;

public class z3 {
   public static long[][] res = new long[1000][1000];

   public static int r(long n, int kol, long nach) {
       int max = 0;
       res[kol][kol] = n;
       for (long i = nach; i * (i + 1) <= n; i++) {
           if (n % i == 0) {
               int max1 = r(n / i, kol + 1, i + 1);
               if (max1 > max) {
                   max = max1;
                   res[kol][kol] = i;
                   for (int j = kol + 1; j <= kol + max; j++)
                       res[kol][j] = res[kol + 1][j];
                   if (kol <= 1)
                       break;
               }
           }
       }
       return max + 1;
   }

   public static void main(String[] args) throws IOException {
        Scanner in = new Scanner(System.in);
        PrintWriter out = new PrintWriter(new
        OutputStreamWriter(System.out));
       //Scanner in = new Scanner(new FileReader("proddiff.in"));
       //PrintWriter out = new PrintWriter(new OutputStreamWriter(
       //        new FileOutputStream("proddiff.out")));
       long n = in.nextLong();
       int kol = r(n, 0, 1);
       out.println(kol);
       for (int i = 0; i < kol; i++) {
           out.print(res[0][i]);
           out.print(' ');
       }
       out.println();
       out.flush();
       out.close();
       in.close();
   }
}
336 8vC1
 
08.07.13
03:11
Этот изврат (яндекс алгоритм) не для тру кодеров, а для людей которые собирают и главное помнят решения подобных задач, на самом деле они все простые и решаются с помощью вложенных циклов и периодических проверок условий. Участников даже язык не поднимается называть программистами. Как правило 90 % участников студенты-неудачники, у которых полно свободного времени. И само предназначение данных турниров, скрытая реклама компании спонсора. Обходите эту мерзость, не стоит оно того, да и футболка с любым логотипом стоит 500 р.

Нет
337 NS
 
08.07.13
10:24
Верно заметил. Это не для быдлокодеров, а для нормальных программистов. Половина победителей работает в гугле, яндексе, фейсбуке и т.д. А остальные просто успешные студенты, которые уже зарабатывают приличные деньги на призах, и имеют обеспеченное трудоустройство в приличных компаниях.
338 sda553
 
08.07.13
10:35
(333) Это не твое решение, ты просто списал то, что было в (320)

(328) Объясняю, я оценил предложенный брутфорс и мне показалось, что он фуфловый по производительности (вероятно недалеко ушел от моего решения). А то, откуда взялась производительность, это вот это вот решето:
                         for (int j = i + i; j <= 15000; j += i)
                              if (r1[j] == 0) {
                                  r1[j] = r1[i] * j / i;
                                  r2[j] = r2[i] * j / i;
                                  r3[j] = r3[i] * j / i;
                              }
которое отсутствует в моем решении, но у меня была уже идея реализовать его в (297)

Я уверен, если к моему решению приделать это решето, то оно так же не проиграет в производительности. Сейчас правда уже не проверишь, т.к. почему то закрыли загрузку задач
339 sda553
 
08.07.13
10:42
На четвертой я лопухнулся, как и большинство участников: решил, что надо выбирать минимальные делители, потом так же переделал ее на перебор всех делителей.

Отсюда вопрос, при сдаче задания в открытую сообщается номер проваленного теста. А что в этом тесте - видно?
340 NS
 
08.07.13
10:48
(338) В смысле списал?
Я ни строчки кода ни с кого не списал. :)
Я вроде и не говорил что это мой алгоритм, тяжело написать свое, когда уже читал верное решение.

Его решение лучше твоего, потому что количество делителей n*n*c*c заметно меньше чем второй цикл в твоем решении.
Чистое время счета для всех чисел от 4 до 15000 (без учета ввода и компиляции) на Java на моей машине - 0.050 секунд.

(339) Видно с какой ошибкой валится тест. Неправильный результат, нехватка памяти, или не уложился в время.
Видно с какой ошибкой валится независимо от того в темную или светлую послал. В темную - проверяется на легких тестах. На тяжелых только после окончания контеста. В светлую - сразу на всех. Других отличий нет.
341 sda553
 
08.07.13
11:03
(33) В смысле того, что ты просто облек в код то, что было уже выведено другими.

(340) у меня на второй цикл попадает только в тяжелых запущенных случаях, типа числа 49, т.е. это будет 1 случай из 24-х. К тому же сам автор решения признает это:
"Но если это объединить с конструктивом и запускать только для простых чисел вида 24*k+1, то должно получится мега шустро "


(339) т.е. при сдаче в открытую мне скажут "Тест 15 WA" и дальше гадай сам что за тест смог с 15 попытки завалить мой алгоритм на неправильный ответ
342 NS
 
08.07.13
11:08
(341) 1. я не понял, к чему ты это. Естественно если я видел его пост и его алгоритм, и это лучшее брутфорсное решение, то реализовано будет именно оно.
2. Тоже не понял к чему это. Оба решивших не знали этой задачи. И при этом решили. Какая разница с какими ограничениями можно решить задачу если заранее знать её теорию?
3. Да. Будет сказана только ошибка, сам тест не покажут.
343 sda553
 
08.07.13
11:13
Ладно, собираюсь вступить в борьбу завтра во второй половине дня. Сегодня наделаю заготовок:
- Эратосфен
- Рекурсивный перебор делителей
- Нахождение обратной матрицы

может еще чего в голову придет
344 NS
 
08.07.13
18:00
Насчет использования чужого кода -
"Разрешается использование любого prewritten code, опубликованного в Интернете до старта квалификации, в случае, если это не нарушает права автора данного кода."
Хороший сборник алгоритмов -
http://e-maxx.ru/algo/
И заметно ускоряют написание заготовки по вводу-выводу
(работа с файлами, ввод массива)
345 NS
 
08.07.13
19:45
http://algorithm.contest.yandex.ru/
Стартовал квалификационный раунд.
Записаться еще можно, начать решать можно в любое время до 9 июля 19.00 по Москве. На решение отводится 100 минут (1ч.40м.)
347 NS
 
08.07.13
20:37
(346) А где ты смотришь статистику?
348 NS
 
08.07.13
20:40
Положение ведь можно смотреть только после старта, после начала отсчета времени?
349 NS
 
08.07.13
20:43
(346) Обсуждение запрещено правилами соревнований, поэтому "во избежание" пост скрою.
350 sda553
 
08.07.13
21:19
(348) хм, действительно скрыли. Но было доступно положение час назад и даже названия задач прочитал. А сейчас только большая кнопка старта.
351 sda553
 
08.07.13
21:23
А не - оказывается если зайти на сайт соревнований не авторизовываясь, или просто выйти - то положение участников доступно
352 NS
 
08.07.13
22:30
(351) ИМХО это глюк.
353 NS
 
08.07.13
22:32
Короче, я закончил. Не очень удачно, не хватило чуть времени для решения еще одной задачи. Но и так нормально.
354 NS
 
08.07.13
22:35
Задал вопрос - подтверили что это баг, никто не должен естественно видеть статистику. Так что пост с статистикой удаляю.
355 NS
 
09.07.13
04:16
Решил в режиме дорешивания все задачи.
Точнее все кроме одной, которой решение вывел, но реализовать уже не в состоянии. Вырубаюсь.
Ушло на решение всех задач (кроме кодирования проблемной) около 5 часов. То есть чтоб решать всё, нужно ускоряться как минимум в три раза.
356 sda553
 
09.07.13
09:06
ого, ты всю ночь что ли не спал? Ты же вроде вышел уже в отборочный, чего ты там вообще решал?
5 часов это немного, у меня где то столько же ушло на вторую задачу в тестовом раунде (если считать с той точки зрения, что я ее все таки решил)
357 Escander
 
09.07.13
09:49
господа, может вопрос нубовский, но никто не знает каким методом 1С решает СЛАУ которая строится при расчёте себестоимости при РАУЗ?
358 Escander
 
09.07.13
10:28
вопрос снят
359 NS
 
09.07.13
11:03
(356) спал конечно. :)
360 NS
 
09.07.13
18:24
Отослал последнюю неотосланную задачу - ведикт ОК, так что все задачи у меня (правда в режиме дорешивания) решены.
361 sda553
 
09.07.13
18:46
Я что то перенервничал, 2 задачи ушли быстро, на 3-ю убил кучу времени - пытался ее даже бросить, но другая задача что то еще хуже, кинулся на бесконечный ряд, потерял время на изучение теории, бросил. В итоге что попало вышло. На конец времени был на 118-ом аж месте (но я там в темную отправил поэтому еще съеду скорее всего)
362 sda553
 
09.07.13
18:49
10 минут осталось до конца раунда
363 sda553
 
09.07.13
19:03
243-244 место в итоге у меня. Вообщем прошел
364 NS
 
09.07.13
19:09
Через 1,35 можно будет обсуждать.
365 NS
 
09.07.13
19:12
В той, которую ты решал последней - меня сглючило неподеццки, вместо того чтоб погуглить я решил что точно знаю ответ.
366 sda553
 
09.07.13
19:17
Что то не понимаю, раунд вроде кончился, а я что то все съезжаю и съезжаю по чуть чуть вниз, уже 248-249
367 sda553
 
09.07.13
19:18
а... понял
368 NS
 
09.07.13
19:19
Раунд закончится в 20.40
369 NS
 
09.07.13
19:23
Турист красиво решил все задачи в темную.
370 NS
 
09.07.13
20:39
(361) решение ряда под спойлером.
371 NS
 
09.07.13
20:40
Сделаем замену, x=1/b
И посмотрим во что превращается ряд при a=0.
Теперь возьмем почленно производную по х при любом а, и домножим на х.
Чтоб проще считать программно производную в радикалах, сделаем замену к=x-1 (x=k+1)
Получив формулу, подставив 1/к = b/(b-1) можно решить задачу в целых числах.
372 NS
 
09.07.13
20:44
А сглючило меня что если позиция в игре  ним выиграна, то выигрывающий ход один, хотя понятно что это не так, например возьмем нечетное количество кучек по одному камню.
Что нужно искать количество единиц в старшем разряде с нечетным количеством единиц, я нагуглил в последнюю минуту контеста.
Надо было конечно пятую решать. Она простая. Я её после контеста решил легко и быстро.
373 sda553
 
10.07.13
09:20
(371) Это то я быстро нашел, что взять производную по z и домножить на z, https://en.wikipedia.org/wiki/Polylogarithm#Particular_values
Но потом я почему то подумал, что не стоит вычислять для всех 10-ти а производные, т.к. много времени займет+риск ошибки и решил, что надо использовать ту формулу, которая с S(n,k) числа Стирлинга второго рода. Я попытался набросать небольшой алгоритм, для вычисления чисел Стирлинга он не сошелся, и я бросил, т.к. понял, что увязаю в этой задаче и теряю время
374 NS
 
10.07.13
10:14
(373) Я не имел в виду ручной расчет производных.
Вот мой код.
http://likecode.ru/code/51dc4d97afb73/

Делаем замену, x=1/b При a=0 получаем ряд x+x^2+x^3... Почленно продифференцируем, и полученный ряд домножим на x. Получим 1*x+2*x^2+... — то есть получили ряд при a=1. Еще раз почленно продифференцируем и домножим на x. Получим 1^2*x+2^2*x^2+3^2*x^3... — ряд при a=2 и т.д. Сумма ряда при a=0 равна x/(1-x), сделаем замену t=x-1 (то есть x=t+1) Сумма ряда при этом стала равна -1-1/t. Возьмем производную, получим 1/t^2, домножим на x=t+1, получим 1/t+1/t^2 — это сумма ряда при a=1. Опять возьмем производную, и домножим на (t+1) и т.д. Коэффициенты при 1/t^j — будем хранить в массиве. Получив все коэффициенты сделаем замену 1/t=b/(1-b)
375 NS
 
12.07.13
17:50
Комментарий к популярной фразе "Могу решить ЛЮБУЮ олимпиадную задачу".
http://codeforces.ru/blog/entry/8265#comment-140481
Если в том году были задачи, которые я до сих пор не знаю как решать, то задачи этого года....
//
То есть двукратный медалист чемпионата мира не может решить любую задачу.
376 NS
 
14.07.13
20:45
Через 15 минут стартует первый тур основной части.
http://algorithm.contest.yandex.ru/contest/308/enter/
377 NS
 
14.07.13
22:41
Я каким-то образом умудрился накосячить (втемную) в третьей, простейшей задаче :(
В итоге вместо сразу выигранной футболки, 130 место.
378 8vC1
 
14.07.13
23:26
(377) Где можно посмотреть условия задач ?
379 NS
 
14.07.13
23:34
(378) для не участников еще не выложены.
380 NS
 
14.07.13
23:55
Вот задача которую никто не решил.
381 NS
 
14.07.13
23:56
Государственные дороги

Ограничение времени    5 секунд
Ограничение памяти    512Mb
Ввод    стандартный ввод
Вывод    стандартный вывод
Легенда

В средние века на территории Байтландии существовало несколько государств. При этом границы государств постоянно изменялись, в результате чего крупные города переходили из одного государства в другое. Сейчас историки пытаются выяснить конфигурацию государств в разное время.
Один из применяемых ими способов основывается на упоминании в хрониках статуса соединяющих города дорог. Если в какой-то исторический момент дорога имеет статус государственной, то историки считают, что соединяемые ею города в этот момент точно принадлежат одному и тому же государству. Однако для передвижения использовались и дороги местного значения, о которых хроники даже не упоминают. Поэтому утверждение о том, что любые два города в одном государстве соединены государственной дорогой, в общем случае неверно, равно как и утверждение, что между любыми двумя городами, принадлежащими одному государству, можно было проехать исключительно по государственным дорогам.
Для проверки этого подхода историкам нужна система, сохраняющая данные о статусе дорог в хронологическом порядке и отвечающая на запросы относительно того, возможно ли, что в текущий (с точки зрения внутренней хронологии системы) момент заданные города — и только они — образовывали единое государство.
Формат ввода

Первая строка ввода содержит два целых числа n и q (1 ? n ? 1?000?000, 1 ? q ? 2?000?000) — количество городов в средневековой Байтландии и количество событий (записей в хрониках и запросов). Города занумерованы последовательными целыми числами от 1 до n.
Далее идут события и запросы, перечисленные в хронологическом порядке (запрос относится к тому моменту времени, когда произошли все перечисленные до него события, но не произошло ни одного события, перечисленного после него). Каждая из q строк обозначает событие или запрос и имеет следующий формат:
«» (событие первого типа) обозначает, что дорога между городами u и v получила статус государственной (1 ? u < v ? n);
«» (событие второго типа) обозначает, что дорога, которая получила статус государственной в результате m-го с начала хроник события первого типа, перестала быть таковой (m может принимать значения от 1 до количества событий первого типа, произошедших перед данным);
«» — запрос: могло ли на момент, описываемый всеми уже обработанными событиями, существовать государство, список городов которого состоял из k городов с номерами  (1 ? k ? n, 1 ? u1 < u2 < … < uk ? n).
На всех упоминаемых в хрониках дорогах движение является двусторонним, при этом любые два различных города соединены не более чем одной дорогой.
На момент инициализации базы (до первого запроса) ни одна дорога не имела статуса государственной. Одна и та же дорога может менять статус с государственной на обычную и наоборот сколько угодно раз. Гарантируется, что каждое m встретится в событиях второго типа не более одного раза. Сумма всех значений k не превосходит 2?000?000.
Формат вывода

В ответ на каждый запрос выведите в отдельной строке «YES» в случае, если данный список городов мог быть полным списком городов некоторого государства в соответствующий момент, и «NO» в противном случае.
383 sda553
 
15.07.13
00:01
Не участвовал, не смог сегодня.
Но, думаю, в первом раунде чего то добиться было шансов мало. Поучаствую в остальных двух
384 NS
 
15.07.13
00:06
(383) Если бы я не лажанулся в третьей задаче - занимал 24 место, выигрывал футболку (все с зачетными очками получают футболку), и шансы на выход в финал хоть и оставались призрачными, но уже появлялись зачетные очки, которые приближают к участию в финале. Так что шансы для меня лично были.
385 NS
 
15.07.13
19:48
(381) Уже озвучили, решается элементарно За O(количестводорог+Сумма(k)) - при помощи Zobrist key.
То есть укладывается с огромным запасом.
386 NS
 
15.07.13
20:16
Это возможно нужно умножить на логарифм количества дорог.
Если хранить Зобрист каждой дороги в индексированной структуре.
387 NS
 
15.07.13
21:24
Не нужно умножать. У меня решение на Java уложилось в TL впритык, c индексированной структурой не уложится.
388 NS
 
18.07.13
14:42
В этом туре поделил 14-106 место. Застрял на третьей задаче. Не смог запихнуть свое решение в TL.
389 NS
 
18.07.13
14:48
104-106 :)
390 sda553
 
18.07.13
14:49
Вообще не понял что за фигня с лягушками. Убил на них время.
В тестовом первом примере высота кочек всегда =1
Усталость первой лягушки 1,2,3,4....
Вторая увеличивает усталость если у первой усталось четная
Третья увеличивает усталость когда у второй усталость четная.

ПОлучается по усталостям 1-ой, второй и третьей по ходам

1 1 1
2 2 2
3 2 3
4 3 3
5 3 3
6 4 4
7 4 5
8 5 5
9 5 5
10 6 6
11 6 7
12 7 7
13 7 7
14 8 8
15 8 9

Итого лягушки находятся на кучках с номерами (ИхУсталость-1)
Первая лягуха на 14-й кучке. Согласно тестового примера, расстояние между 1-й и 3-й должно быть 10. Но 15-9=6
ЧЯДНТ
391 NS
 
18.07.13
15:08
(390) Я её даже условие не читал. Вечером прочитаю.
392 NS
 
19.07.13
19:37
(390) "Если лягушка не прыгала, то и следующие тоже не прыгали. Это непонятно из условия, но понятно из семпла."
(с) http://codeforces.ru/blog/entry/8344#comment-141473
393 sda553
 
19.07.13
19:40
(392) Яндекс лажанулся, правда, пострадал при этом я
394 NS
 
19.07.13
19:46
(393) Да, накосячили в двух задачах - первой и третьей.
395 NS
 
19.07.13
19:50
В третьей - авторское решение задачи неверное, и проходит только из-за фичи компилятора. И аналогичное решение не должно проходить на Java, так как там промежуточные результаты не вычисляются в long double. И при этом не было правильных тестов на точность вычислений.
396 sda553
 
20.07.13
14:54
(395) Это разве не задача в целых числах?
397 NS
 
20.07.13
16:13
(396) эта задача вообще на другую тему.
Влоб решать, через целочисленную площадь - не уложишься в tl.
398 NS
 
20.07.13
17:18
А проблема в том, что в лучшем решении на java - long - не хватает разрядов, double - не хватает точности, а BigInteger не укладывается в tl. То есть решать нужно на длинной арифметике на двух лонгах.
При этом на c++ все ок с double.
399 sda553
 
20.07.13
17:59
В понедельник подъем в 4 утра?
400 NS
 
20.07.13
18:15
(399) угу, я уже будильник поставил.
Прикинул - если войду в 150, то в итоге по трем раундам войду в сотню, и получу очередную футболку :)
401 NS
 
22.07.13
06:46
Писать в 5 утра конечно жесть.
Первую задачу сдал с седьмой! попытки - не видел что для расчета среднего делаю целочисленное деление.
Шестую задачу со второй - не увидел что переполняю int возведением в квадрат.
В итоге на остальные задачи времени не хватило.

Но занял 104 место, должно хватить для футболки.
402 8vC1
 
22.07.13
08:25
(401) Так я не понял, сколько ввитоге задач засчитали ?
403 NS
 
22.07.13
10:50
(402) Две - первую и шестую.
Футболку выиграл, в итоге 89-ое место.
404 NS
 
22.07.13
12:12
Все 25 вышедших, за исключением двух кандидатов - гроссмейстера codeforces. Кандидаты, оба, сыграли всего по 2-3 турнира, и просто видимо не успели набрать рейтинг.
405 sda553
 
22.07.13
12:15
Ну печально че уж. Теперь, зная о таких чемпионатах, думаю набить руку и к следующему чемпионату представлять из себя реальную угрозу.
406 NS
 
23.07.13
14:18
Вот эти два кандидата codeforces
http://community.topcoder.com/tc?module=MemberProfile&cr=8357090
http://community.topcoder.com/tc?module=MemberProfile&cr=8365685
Оба гроссы TopCoder, один Поляк, второй Словак.
Так что не гроссам - без шансов выйти в финал.
407 sda553
 
07.08.13
17:45
Внезапно, из яндекса пригласили побеседовать насчет работы в яндекс
408 NS
 
07.08.13
19:26
(407) тебе же не 20 лет. Странно...
409 Злопчинский
 
07.08.13
19:57
(408) а фигли...
http://www.kinopoisk.ru/film/666935/
410 Злопчинский
 
07.08.13
19:57
смотрел ксатит это киношку, нормально...
411 NS
 
07.08.13
20:00
В Яндексе хорошие зарплаты, я даже хотел резюме туда лет пять назад послать, не послал только потому что моя тогдашняя подруга устроилась директором в тот-же департамент :)
412 NS
 
07.08.13
20:02
Не пять лет назад, а или в 2005-ом, или в 2007-ом. Точно не помню.
413 saasa
 
07.08.13
20:49
(403) молодец, чо уж там :)