Имя: Пароль:
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/

из местных кто-то примет участие или все настолько ленивы?
1 IШаман
 
06.06.13
17:10
1с там нету.
2 sda553
 
06.06.13
17:10
времени нет.
3 Guk
 
06.06.13
17:10
предлагаю от местных послать туда NS-а...
4 sda553
 
06.06.13
17:11
(1) у меня ощущение что я могу уже программировать все что программируется...
5 Ненавижу 1С
 
гуру
06.06.13
17:11
надо у NS спросить
6 IШаман
 
06.06.13
17:11
(4) Ну тогда дерзай. Может ощущения станут более реальными.
7 sda553
 
06.06.13
17:12
(6) см (2)
8 Escander
 
06.06.13
17:12
(4) 100 минут нет на решение задачи? Может пора ну его эти форумы в топку?
9 Escander
 
06.06.13
17:13
(3) он всех посылателей сам не пошлёт?
10 NS
 
06.06.13
17:13
Я буду. В мейловском ксати вышел в отбор, но 16-го буду в отпуске (день отлета), так что в отборе участвовать не буду. Обидно, но что поделаешь...
11 Escander
 
06.06.13
17:14
(10) молоток!
12 sda553
 
06.06.13
17:14
(8) 100 миунт есть
13 Волшебник
 
06.06.13
17:15
(3) I место — 300 тысяч рублей;

Стоит ли попу рвать за такую мелочь?
14 NS
 
06.06.13
17:15
(4) Современное олимпиадное программирование - такая вещь, что без знания на зубок основных (на текущий момент) олимпиадных алгоритмов, шансов где-то что-то занять практически нет. Можешь попробовать свои силы на http://codeforces.ru/
15 Escander
 
06.06.13
17:16
(12) согласно правилам "Каждый раунд длится 100 минут. "
16 Волшебник
 
06.06.13
17:16
(14) Зачем оно вообще нужно? За 100 минут реализовать какой-нибудь дурацкий парсер, который нахрен никому не нужен.
17 Escander
 
06.06.13
17:16
(14) если с чего-то не начать - ничего не получится
18 Escander
 
06.06.13
17:17
(13) главный приз будет типа так: вакуха с месячной зп от половины приза за 1 место
19 sda553
 
06.06.13
17:17
(15) Ок, уговорил, зарегался, выбрал C++
20 Escander
 
06.06.13
17:19
(19) хороший выбор! К сожаления в ++ никогда не был сильно силён
21 Guk
 
06.06.13
17:19
(13) помнится, Сергей рвал попу за 500$ ;) даже с учетом инфляции, 300 тыр поболе будет...
22 Escander
 
06.06.13
17:20
(21) что за Сергей?
23 sda553
 
06.06.13
17:21
А где нибудь есть пример того что было в 2012?
24 sda553
 
06.06.13
17:22
25 NS
 
06.06.13
17:22
(16) Нет там никаких парсеров. Только олимпиадные задачи.
26 NS
 
06.06.13
17:24
(18) Призы возьмут только олимпиадные программисты, которые ежедневно тренируются в течении многих лет. У остальных шансов нет.
27 NS
 
06.06.13
17:33
Забыл проголосовать.

Приму участие обязательно
28 Fragster
 
гуру
06.06.13
17:39
уверен что решу задачи, но поскольку с указанными языками знаком поверхностно - во временной норматив не уложусь

Нет
29 Escander
 
06.06.13
17:48
(28) аналогично, но н в виду поверхности а т.к. много лет ни на сишняке ни на паскале не ваял
30 jsmith82
 
06.06.13
17:50
Там, наверно, математика будет
Скучно

Нет
31 jsmith82
 
06.06.13
17:50
Для 1Сников надо свою олимпиаду
Типа на лучшую бизнес-логику, лучший код
32 jsmith82
 
06.06.13
17:51
Вот чё фирма 1С не проводит такие олимпиады. Глядишь, не было бы ут 11
33 NS
 
06.06.13
17:51
(29) Ну а словами рассказать решение конечно-же сможешь?
Давай я наугад тебе олимпиадной задачи дам условие...
34 Иде я?
 
06.06.13
17:52
(33) давай. Надо мозги тренировать, не всёж монетезировать всё и вся
35 NS
 
06.06.13
17:58
(34) А смысл? Несколько тысяч задач на Codeforces.
Бери любую пятую с Div.1.
36 Escander
 
06.06.13
18:03
(33) давай попробуем
37 NS
 
06.06.13
18:08
38 NS
 
06.06.13
18:10
http://codeforces.ru/contest/303/problem/C
Вот совсем простая.
39 NS
 
06.06.13
18:16
Вообще достаточно написать как ты примерно будешь делать.
И сообщить сложность алгоритма. Зная количество входных данных (оно всегда есть в условии), легко узнать влезаешь ли в time limit (примерно 10^9 операций за 3 секунды можно выполнить)
40 NS
 
06.06.13
18:19
http://codeforces.ru/contest/302/problem/D
А вот это совсем просто - решение можно описать одним словом.
41 Escander
 
06.06.13
19:16
(40)метод симспона?
42 Escander
 
06.06.13
19:18
(38) что за хрень такая(три горизонтальных черты перечёркнуты)?
43 Escander
 
06.06.13
19:20
+ (42) в смысле что остаток от деления этих чисел на m различен?
44 NS
 
06.06.13
19:22
(41) дейкстра. Но ограничения не очень жесткие, поэтому в tl влезает флойд.
45 NS
 
06.06.13
19:23
(41) не равны по модулю. Соответственно да, разный остаток от деления.
46 Escander
 
06.06.13
19:27
(45) 2 сек и 256 мб - дв тут перебором в лоб можно успеть посчитать (в смысле для m=2, не взлетело - для m=3 и т.п.)
47 Escander
 
06.06.13
19:30
имхается, что перечитанный учебник по мат. играм повышает лэвэл по таким задачам на пару порядков
48 Escander
 
06.06.13
19:30
ну т.е. всё опять упёрлось во время
49 vde69
 
06.06.13
19:49
(0) я не могу участвовать по условиям конкурса
50 vde69
 
06.06.13
19:49
нет

Нет
51 NS
 
06.06.13
19:50
(46) конечно-же простая прикидка показывает что перебором не успеть.
52 Бертыш
 
06.06.13
19:55
Надо сына развернуть в сторону этих олимпиад
53 NS
 
06.06.13
19:56
Допустим правильный ответ около 10^6
Остаток от деления мы должны проверить для 5000 чисел для каждого делителя до 10^6.
Как ты собрался успевать полным перебором?
54 10minute
 
06.06.13
20:13
(14)
Кстати да. Там очень важно понимание алгоритмов и матана. 1сникам там делать нечего.
55 NS
 
06.06.13
23:24
Насчет "могу решить любую задачу" - многократные чемпионы мира по олимпиадному спортивному программированию скорей всего так сказать не могут.
http://codeforces.ru/problemset/problem/303/E
Вот эту задачу Геннадий Короткевич решить не смог.
Кстати, я знаю как она решается :)
56 Guk
 
06.06.13
23:32
(55) мда, как же это все далеко от программирования на 1С ;)...
57 mikecool
 
06.06.13
23:35
берите Guk-а
58 NS
 
07.06.13
00:52
(47) Нет конечно. Нужно читать учебники не по мат. играм, а по программированию (повышению уровня в алгоритмах)
Вот отличный список тематической литературы:
http://with-champions.ru/library.html
И есть очень полезный сайт
http://e-maxx.ru/index.php
59 Попытка1С
 
07.06.13
01:02
(58) Ты в танках то какое место занял в итоге?
60 NS
 
07.06.13
01:15
(59) Вроде последнее.
Я выиграл футболку, прошел во второй этап, и выложил стартового бота. Думаю что выше чем на последнее место он вряд ли мог рассчитывать.

Но танки - это не олимпиадное программирование, это AI.
Типа codeforces.nl
61 NS
 
07.06.13
01:22
Если в AI немного поднапрягшись я без проблем выходил на первое место, что в танках, что в голландском чемпионате,
то в олимпиадном программировании на текущий момент мне не светит ничего кроме призовых футболок. Хотя я начинал именно с олимпиадного программирования, но за 25 лет уровень задач стало совсем другой, и скорости их решения выросли на порядок. Думаю годик потренироваться, может выйду тогда на приличный уровень.
62 Попытка1С
 
07.06.13
01:25
(61) Эти задачи сопоставимы с теми что решаются на чемпионатах мира по программированию, когда команды решают максимальное количество задач на время?
63 NS
 
07.06.13
01:33
(62)  которые на codeforces div 1, яндекс алгоритм, mail code cup и т.д. - да, примерно уровня чемпионатов мира. Выигрывают их те же люди что и чемпионаты мира. Когда командные чемпионаты - просто обычно дается больше задач.
64 NS
 
07.06.13
01:35
для примера что выигрывали победители прошлогоднего code cup
http://russiancodecup.ru/round/10/results
Ники кликабельны.
65 NS
 
07.06.13
01:39
Командный чемпионат мира называется ACM-ICPC
66 Попытка1С
 
07.06.13
01:39
(64) Крутые ребята, большенство даже на программеров задротов не похожи)
67 Попытка1С
 
07.06.13
01:41
Помниться показывали по телеку награждение питерских победителей одного из чемпионата мира не помню какого года, так там прямо по виду типичные гении ботаники))
68 NS
 
07.06.13
01:42
(67) не у всех ботанический вид, но у многих :)
69 NS
 
07.06.13
01:56
в (60) конечно-же codecup.nl, а не codeforces.nl
70 Попытка1С
 
07.06.13
01:59
(69) ты кстати еще в юбилейном обитаешь? Если да до через пару месяцев будем соседями)
71 NS
 
07.06.13
02:00
(70) Неа, там купили квартиру, но жена отказывается туда переезжать пока западный скоростной не достроят.
72 Попытка1С
 
07.06.13
02:02
(71) Ну так скоро уже вроде)
73 Escander
 
07.06.13
03:19
(51) на контрольном примере чисел менее десятка, самое большое из них менее 20
74 Escander
 
07.06.13
03:29
(55) наверное для каждого посчитать среднее значение и дисперсию и уже на основании результатов сравнения этих величин строить прогноз
75 sda553
 
07.06.13
06:58
(55) Для каждой точки-станции помтроить покрытие с дистанцией равной количеству времени на станции. После этого как то найти путь, с минимальным непокрытым участком
76 NS
 
07.06.13
10:44
(73) при чем тут контрольный пример?
(75) ???
(74) мда...
77 NS
 
07.06.13
11:01
(73) решение будет прогнано через тесты, которые удовлетворяют  условиям в задаче, и твое решение будет забраковано, так как не уложится в TL. так как решение плохое - имеет плохую сложность алгоритма.
(74) то что ты написал - не решение. И естественно дисперсия и среднее для ранжирования при равномерном распределении ничем не помогут.
(75) по условию видно, что время на путь между двумя любыми точками всегда больше бонуса. Считаем разницу расстоянием между вершинами, так как она всегда неотрицательна - легко можем найти кратчайший путь по графу дейкстрой или флойдом.
78 sda553
 
07.06.13
11:19
>>>время на путь между двумя любыми точками всегда больше бонуса

что то упорно не вижу этого в условии
79 NS
 
07.06.13
11:21
(78) смотрим на формулу расстояния, на условие целочисленности координат точки, и на условие на a и d
80 NS
 
07.06.13
11:23
Расстояние не может быть меньше единицы, а d всегда не меньше a
Значит d*расстояние>=a
81 sda553
 
07.06.13
11:26
(79)
Формула расстояния (а вернее времени  потраченного на расстояние)
Т=(|xi?-?xj|?+?|yi?-?yj|.)*d
Условие цлочесленности координат: координаты целочисленны
Условие на a от 1 до 1000
d от 10^3 до 10^5

Действительно, но меня смущает, что тогда слишком просто как то, что то не так
82 NS
 
07.06.13
11:37
Это задача второго дивизиона.
83 NS
 
07.06.13
11:38
Все так. У меня естественно решение прошло тесты.
84 NS
 
27.06.13
20:54
http://algorithm.contest.yandex.ru/contest/306/standings
Вот тут в реальном времени можно отслеживать результаты первого, тестового раунда.
Шансов у меня конечно нет, но я поучаствую.
До начала осталось 7 минут.
85 NS
 
27.06.13
22:41
Тестовый тур закончился.
86 NS
 
28.06.13
01:47
Народ бушует, типа очень простая вторая задача, и слишком сложные остальные. Для того чтоб пройти достаточно было "в темную" решить вторую задачу. Либо решить любые две задачи.
Я решил две - первую в открытую, и третью " в темную".
Кто не прошел или не участвовал - с семи вечера восьмого июля до семи вечера девятого июля можно выделить час сорок, и попытаться выйти в основную часть.
Выходит 2000 участников, так что скорей всего выйти будет достаточно просто.
87 NS
 
28.06.13
01:48
Виноват, слишком простая третья задача.
88 Escander
 
28.06.13
06:19
(87) так ты прошёл или нет?
89 Xapac
 
28.06.13
07:55
ща зарегимся

Возможно поучаствую
90 NS
 
28.06.13
10:31
(88) прошел конечно.
91 Попытка1С
 
28.06.13
12:22
А где ссылка на задачи?
92 NS
 
28.06.13
12:26
А в (84) задачи не показывает?
93 Попытка1С
 
28.06.13
12:27
(92) Неа, только рейтинг вижу.
94 NS
 
28.06.13
12:29
(93) Тогда зарегистрируйся.
95 Flyd-s
 
28.06.13
12:29
Попробую что-нибудь на php написать)
96 NS
 
28.06.13
12:31
(95) Наличие решений укладывающихся в time limit гарантируется только на Java, С/С++, Pascal
97 NS
 
28.06.13
12:32
Но в принципе большинство задач решается на всех языках, поэтому можно и на пхп.
98 Попытка1С
 
28.06.13
12:32
(94) Да я зареген вроде бы.
99 NS
 
28.06.13
12:32
(98) Тогда зайди под своим логином.
100 Попытка1С
 
28.06.13
12:33
(99) Ты меня совсем за дурака считаешь?)
101 NS
 
28.06.13
12:33
102 NS
 
28.06.13
12:33
(100) А что пишет в ссылке (101)?
103 Попытка1С
 
28.06.13
12:34
Пишет "Соревнование началось."
104 NS
 
28.06.13
12:35
(103) Круто! А у меня пишет "Соревнование завершено" :)
Обновление страницы не помогает?
http://algorithm.contest.yandex.ru/contest/306/
А по этой ссылке?
105 Попытка1С
 
28.06.13
12:35
(104) Да один фиг, тоже самое "Соревнование началось.".
106 Попытка1С
 
28.06.13
12:36
Ладно фиг с ним.
Вы хоть выкладывайте задачки, интересно.
107 NS
 
28.06.13
12:37
http://contest.yandex.ru/contest/ContestList.html
Тут, четвертая сверху.
108 NS
 
28.06.13
12:39
(106) Есть подозрение что выкладывание задач нарушает правила, ибо может помешать тем кто хочет потренироваться вживую по ссылке в (107)
109 Попытка1С
 
28.06.13
12:45
(108) Условие задачи, не решение ведь.
110 NS
 
28.06.13
12:47
(109) Решение задач ведь на время. Если человек увидит заранее условие, то это ему собьёт результат.
111 NS
 
28.06.13
12:52
Наверно просто еще не успели дать возможность решения тем кто не участвовал.
112 Попытка1С
 
28.06.13
12:59
Понятно, ну ладно.
113 NS
 
28.06.13
13:27
http://algorithm.contest.yandex.ru/contest/306/enter/?lang=ru
И с этой ссылки ничего не получается?
114 NS
 
28.06.13
13:37
Вот условие первой задачи:

Окружности

Ограничение времени 2 секунды
Ограничение памяти 64Mb
Ввод circles.in
Вывод circles.out

Легенда


На плоскости расположен набор из n окружностей. Каждая окружность задана тремя различными точками, через которые она проходит. Найдите наибольшее количество окружностей, имеющих один и тот же радиус.


Формат ввода


В первой строке входного файла задано целое число n (1 ? n ? 1400). В последующих n строках заданы по шесть целых чисел x1, y1, x2, y2, x3, y3 — координаты трёх точек, не лежащих на одной прямой и задающих соответствующую окружность (0 ? xi, yi ? 1400).


Формат вывода


Одно целое число — количество окружностей, имеющих наиболее часто встречающийся в наборе радиус.


Пример


Ввод

Вывод


3
0 0 0 1 1 0
0 0 2 0 0 2
1 1 1 2 2 1
115 NS
 
28.06.13
13:37
Вместо знаков вопроса в условии - <=
116 HeroShima
 
28.06.13
14:00
(114) терпимо
117 NS
 
28.06.13
14:02
(116) Это та задача, которую решило большинство (естественно кроме третьей, которая совсем простая)
Третья:
118 NS
 
28.06.13
14:03
Выбери цифры

Ограничение времени 2 секунды
Ограничение памяти 64Mb
Ввод number.in
Вывод number.out

Легенда


Дана последовательность из восьми цифр, каждая из которых равна 1, 2 или 3. Требуется выбрать из них четыре цифры так, чтобы число, полученное при выписывании этих цифр в том же порядке, в каком они были в последовательности, оказалось как можно меньше.


Формат ввода


Первая строка входного файла содержит восемь цифр, каждая из которых равна 1, 2 или 3, записанных подряд без пробелов.


Формат вывода


В первой строке выходного файла выведите четыре цифры, образующие искомое минимальное число, также без пробелов.


Пример 1


Ввод

Вывод


12333333

1233



Пример 2


Ввод

Вывод


32111111

1111



Пример 3


Ввод

Вывод


12131211

1111



Пример 4


Ввод

Вывод


33333323

3323



Пример 5


Ввод

Вывод


32333313

2313
119 MMF
 
28.06.13
14:27
Нельзя им доверять, мне вон за прошлые танчики заслуженную футболку не прислали :-(

Нет
120 NS
 
28.06.13
14:30
(119) Это были не они. (там был mail.ru, а тут yandex)
Мне за танки футболку прислали, причем весьма оперативно.
121 Flyd-s
 
28.06.13
15:55
(96), да пофиг, я всё равно ничего не выиграю
122 NS
 
28.06.13
15:58
(121) Футболку выиграть шанс есть всегда. Для этого достаточно решить всего одну задачу.
"Ещё одна хорошая новость: мы решили почти удвоить количество сувенирных футболок. Теперь майку с символикой Яндекс.Алгоритма получат 75 лучших участников отборочного этапа и ещё 75 человек, выбранных случайным образом — из тех, кто решил хотя бы одну задачу. И, разумеется, все финалисты."
123 Flyd-s
 
28.06.13
16:22
Тестирующая система, на которой будут проверяться решения участников, поддерживает следующие компиляторы:

— Delphi
— Free Pascal
— GNU С++  (4.6)
— GNU С++ 0x (4.6)
— GNU С++ 0x x32 (4.6)
— GNU С++ x32 (4.6)
— Java 7
— Java 6
— GNU С (4.6)
— GNU С x32 (4.6)
— Python 2.7
— Python 3.2
-----------
А php куда дели? Вспоминать С/С++, устанавливать IDE ради конкурса пожалуй не стану
124 NS
 
28.06.13
16:34
(123) Значит и не было.
125 sda553
 
01.07.13
17:46
(123) Писал на GNU С++
Что то первая задача оказалась не такой уж тривиальной. Застопорился на том месте где надо было вычислить радиус окружности по трем точкам - казалось бы фигня, а на деле вышло не так уж и просто.
126 NS
 
01.07.13
17:57
(125) Вычислить то как раз просто, а что дальше?
Такие задачи, где нужно точное равенство - решать можно только в целых числах.
127 NS
 
01.07.13
17:57
(125) Вышел?
128 sda553
 
02.07.13
09:30
(126) Дай посмотреть твой код к первой, похоже я на ней затупил
(127) Нет, я не участвовал
129 sda553
 
02.07.13
09:34
(127) Я арендовал только вчера centos машину на 14 дней. Поставил на ней g++ и начал тренироваться
130 NS
 
02.07.13
11:45
import java.io.*;
import java.util.*;

public class z2 {
   public static long nod(long a, long b) {
       while (b != 0) {
           long temp = a % b;
           a = b;
           b = temp;
       }
       return a;
   }

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

       Scanner in = new Scanner(file);
       PrintWriter out = new PrintWriter(new OutputStreamWriter(fos));
       int n = in.nextInt();
       double e = 0.00000000001;
       long[] rr1 = new long[n];
       long[] rr2 = new long[n];
       int[] ch = new int[n];
       int kol = 0;
       for (int i = 0; i < n; i++) {
           long x1 = in.nextLong();
           long y1 = in.nextLong();
           long x2 = in.nextLong();
           long y2 = in.nextLong();
           long x3 = in.nextLong();
           long y3 = in.nextLong();
           long a = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);
           long b = (x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2);
           long c = (x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3);
           long r1 = a * b * c;
           long r2 = Math.abs((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1))
                   * Math.abs((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1));
           long no = nod(r1, r2);
           r1 = r1 / no;
           r2 = r2 / no;
           boolean f = false;
           for (int j = 0; j < kol; j++) {
               if ((r1 == rr1[j]) && (r2 == rr2[j])) {
                   ch[j]++;
                   f = true;
                   break;
               }
           }
           if (f == false) {
               rr1[kol] = r1;
               rr2[kol] = r2;
               ch[kol] = 1;
               kol++;
           }
       }
       int max = 0;
       for (int i = 0; i < kol; i++)
           max = Math.max(max, ch[i]);
       out.println(max);
       in.close();
       out.flush();
       out.close();
   }
}
// но правильней брать НОД между каждой стороной и площадью отдельно.
131 sda553
 
02.07.13
13:15
(130) И оно правильное?
Я просто шел тем же путем (с незначительной вариацией), но я наткнулся на следующую проблему:
Если взять твой код как основу обсуждения ( у меня в принципе то же самое, только через малость другие вычисления)
То оценим максимальные a,b,c
это будет 1400^2 каждый
long r1 = a * b * c; дает максимально 1400^6
а это превышает 2^64-1 что максимально можно сохранить в беззнаковом 64-битном целом.
(кстати long в java это еще и вроде знаковое целое, это еще в два раза меньше, не так ли?)
Как доказать что
long r1 не превысит 2^64-1 я что то не нашел способа
132 NS
 
02.07.13
13:21
(131) Оно неправильное, но оно прошло. Правильное в комментариях.
r1 = a * b * c; Максимально больше 2^63, но меньше 2^64
1400^6 кстати меньше 2^63
133 NS
 
02.07.13
13:24
Доказать легко. Максимально три стороны прямогугольного треугольника, квадраты равны
1400^2, 1400^2 и 2*(1400^2) - по теореме Пифагора.
Их произведение явно меньше 2^64.
В Java нужно извращаться с НОД по каждой стороне, так как нет беззнакового 64 бит целого. Но можно использовать BigInteger.
134 NS
 
02.07.13
13:25
У меня такое решение, потому что изначально было написано что координаты меньше 1000, потом они поправились что 1400, но я этого не увидел. Слава богу решение прошло.
135 sda553
 
02.07.13
13:29
(133) А почему ты считаешь, что максимальный r1 будет при прямоугольном треугольнке?
136 sda553
 
02.07.13
13:32
(132) Да я неправильно сказал, ошибся, в оценке я взял максимальные
a,b,c 2*1400^2
тогда r (макс)= 1400^6*8 что больше чем 2^64-1
137 NS
 
02.07.13
13:34
(136) Такие стороны в условие никак не влезают.
138 sda553
 
02.07.13
13:37
(137) Это я понимаю, но без ответа на (135) я другой способ оценки максимального r=a*b*c не вижу.
139 NS
 
02.07.13
13:41
(135) А почему ты считаешь что нет? :)
140 sda553
 
02.07.13
14:01
(139) Да я как бы и не утверждаю, что нет, я лишь свожу это к нерешенной подзадаче:
Внутри квадрата NxN находится треугольник, все углы треугольника внутри квадрата.
Вопрос: Какое максиамльное может быть произведение сторон треугольника?
141 sda553
 
02.07.13
14:02
А вообще надо Ненавижу1С брать в пару на чемпионата, в качестве математика, чтобы не отвлекаться на такие подхадачи
142 NS
 
02.07.13
14:03
(140) Зря заморачиваешься. :)
Никто на олимпиадах доказательств не требует.
Если сомневаешься, используй длинную арифметику.
143 sda553
 
02.07.13
14:13
(142) Я уже этот момент так же чекнул, длинная арифметика садит производительность как раз для 1400-ох прямоугольных треугольников расчет радиусов с НОДами выходит за пределы 2-х секунд.
144 NS
 
02.07.13
14:21
(143) Не выходит, и близко не выходит. Тебе длинную арифметику нужно использовать всего 1400 раз.
145 NS
 
02.07.13
14:22
Но её не нужно использовать. Пробуешь в светлую unsigned long long, видишь что прошло, и на этом успокаиваешься :)
146 NS
 
02.07.13
14:40
Насчет "длинки" - для каждого треугольника требуется выполнить только одну длинную операцию - одно произведение обычных чисел с длинным результатом. Треугольников 1400, то есть нужно выполнить 1400 длинных произведения. Я берусь утверждать что в две секунды уложится 10^8 длинных произведений. Что явно больше 1400.
147 sda553
 
02.07.13
14:40
(140) Еще НОД находить надо на длинке
148 NS
 
02.07.13
14:41
(147) Не надо.
149 NS
 
02.07.13
14:45
Три квадрата сторон a, b, c (каждый из которых без вопросов влезает даже в int32)
Квадрат удвоенной площади S (который влезает с огромным запасом).

темп=НОД(a,s)
а=а/темп
S=S/темп

темп=НОД(b,s)
b=b/темп
S=S/темп

темп=НОД(c,s)
c=c/темп
S=S/темп

И теперь произведение трех сторон может допустим выйти за long long, поэтому только для них выполняем длинное произведение храня результат в двух long long
150 NS
 
02.07.13
14:47
После всех операций НОД(a,s)=1, НОД(b,s)=1, НОД(c,s)=1 из чего следует что НОД(a*b*c,s)=1
151 sda553
 
02.07.13
15:08
(149) Да, верно. НОД можно вычислять над UINT32.
152 NS
 
02.07.13
15:41
(151) зачем? uint64.
А потом в двух uint64 вычисляешь произведение a, b и c
Младшие 64 бита равны просто a*b*c,
Старшие - старшие 32 бита от произведения старших 32 бит a*b и c
153 sda553
 
03.07.13
09:19
Я что то задумался о правилах. Допустим у меня есть две регистрации, фейк и реальная. Фейковой регистрацией я решаю задачи по 100 минут в открытую пока они не заработают. Потом захожу под реальной регистрацией и внезапно решаю задачи за пять минут каждую, да еще и в темную. Так что ли?
154 NS
 
03.07.13
11:00
(153) в квалификации все кто пишет выше некоторого уровня пройдут. Все-таки 2000 выходящих мест. Если тебе требуются такие трюки чтоб выйти в основную часть, то какой в этом смысл? В основной части трюки не пройдут.
155 sda553
 
03.07.13
11:35
задача C судя по турнирной таблице самая простая, у меня то же трудностей с ней не оказалось.
мое решение (gnu c++)
>>
#define IN_FILE file_in
#define OUT_FILE file_out
#define IN_FILE_NAME "number.in"
#define OUT_FILE_NAME "number.out"

#include <iostream>
#include <fstream>
#include <cstring>
#include <sstream>
#include <map>

using namespace std;

int main ()
{
   string mystr;
   ifstream IN_FILE;
   ofstream OUT_FILE;
   char str1[10],str2[10],result[5], tempchar;
   char *f;
   try
   {
       IN_FILE.open(IN_FILE_NAME);
       getline(IN_FILE,mystr);    
       IN_FILE.close();
       std::strcpy(str1,mystr.c_str());
       strcpy(str2,str1);
       f = str1;
       for(int i=5;i<9;i++)
       {
       str1[i]=str2[i];
       str1[i+1]='\0';    
       f = strstr(f, "1")==0 ? (strstr(f, "2")==0 ? strstr(f, "3") : strstr(f, "2")): strstr(f, "1");
       result[i-5] = f[0];
       f = &f[1];
       }
       result[4]='\0';
       OUT_FILE.open(OUT_FILE_NAME);
       OUT_FILE << result;
       OUT_FILE.close();
     }
   catch (std::ifstream::failure e) {
     std::cerr << "Exception opening/reading/closing file\n";
   }
   return 0;
}
156 NS
 
03.07.13
11:54
import java.io.*;
import java.util.*;

public class z2 {
   public static String s;

   public static int minn(int a, int b) {
       char mi = '9';
       int ch = 0;
       for (int i = a; i <= b; i++)
           if (s.charAt(i) < mi) {
               mi = s.charAt(i);
               ch = i;
           }
       return ch;
   }

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

       Scanner in = new Scanner(file);
       PrintWriter out = new PrintWriter(new OutputStreamWriter(fos));
       s = in.nextLine();
       int nach = -1;
       for (int i = 1; i <= 4; i++) {
           nach = minn(nach + 1, 3 + i);
           out.print(s.charAt(nach));
       }
       out.println();
       in.close();
       out.flush();
       out.close();
   }
}
157 NS
 
03.07.13
12:02
Сейчас проходит финал ЧМ ACP ICPC, пока ИТМО на втором месте среди более чем ста команд со всего мира.
СПбГУ на пятом, МГУ на восьмом.
158 NS
 
03.07.13
12:05
ИТМО на первом месте.
159 NS
 
03.07.13
12:10
http://icpc2013.ru/competition/live.xml?lang=ru#second
Вот турнирная таблица в реальном времени.
160 NS
 
03.07.13
12:31
http://static.kattis.com/icpc/wf2013/
Вот тут красивее таблица.
161 Попытка1С
 
03.07.13
12:37
Красавцы!
162 Escander
 
03.07.13
12:41
это что за чудо:"Kazakh-British Technical University"?
163 NS
 
03.07.13
12:44
(161) Они и так многократные чемпиона, а сейчас еще Короткевича (tourist) с беларуси к себе взяли.
(162) http://www.kbtu.kz/
164 Escander
 
03.07.13
12:45
1 место! и в первой десятке ещё 3 команды!!!
165 NS
 
03.07.13
12:45
Отрыв ИТМО от конкурентов - уже в две решенные задачи.
166 Fragster
 
гуру
03.07.13
12:46
(165) ИТМО всех зарулит. жалко, меня в свое время на факультет к парфенову не взяли.
167 NS
 
03.07.13
12:46
(164) Призовых 12 мест. Первые четыре - золото, потом четыре серебра, и четыре бронзы. Из 12 призовых - 5 Российских университета. Вопрос к недавней ветке - вы действительно думаете что Российские программисты не лучшие?!
168 Escander
 
03.07.13
12:54
(167) там ветка была кривая... я так и написал, что: Не вижу корреляции между именем ветки и вариантами ответа!
169 toypaul
 
гуру
03.07.13
12:57
(160) Тут рейтинг с чатом http://ahmed-aly.com/ICPC.jsp :)
170 NS
 
03.07.13
13:01
(169) Там тормоза, я на кнопку обновить боюсь нажимать, подвисает на 10 минут.
171 Fragster
 
гуру
03.07.13
13:03
(170) УМВР
172 NS
 
03.07.13
13:08
(171) Очень странно. Скрипт явно тормозит на той стороне (сайт выдергивает инфу с официального при помощи php кода)
173 toypaul
 
гуру
03.07.13
13:09
(170) у кого как. у меня норм :)
174 Escander
 
03.07.13
13:40
(163) кста, а ведь ровно половина золота у exUSSR
175 Escander
 
03.07.13
13:42
(174) золота = призовых мест
176 NS
 
03.07.13
13:44
Саратов подозрительно плохо идет. Должны тоже выйти в призеры.
177 NS
 
03.07.13
13:46
У них все попытки с первого раза, видимо перепроверяют чтоб без ошибок послать.
178 Unkas
 
03.07.13
13:48
(0) Я бы принял - но я тупой =\

Нет
179 Попытка1С
 
03.07.13
14:19
(163) Короткевич крутой...
180 NS
 
03.07.13
14:24
(179) Лидер рейтинг-листа на всех олимпиадных сайтах - конечно крутой :)
181 NS
 
03.07.13
14:34
Таблица заморожена, сейчас показывают только попытки, прошли они или нет не показывается. Через полчаса будет известно кто чемпион.
182 NS
 
03.07.13
14:46
Турист написал последнюю задачу, "B",
если всё верно, то ИТМО решило все задачи, и недосягаема для конкурентов по очкам.
183 NS
 
03.07.13
14:52
"G" у них неправильно решена, еще две посылки подряд сделали.
184 toypaul
 
гуру
03.07.13
15:07
все?
185 NS
 
03.07.13
15:11
На сайте результатов пока нет.
186 toypaul
 
гуру
03.07.13
15:14
G задачу объясняют. которую никто не решил :)
187 toypaul
 
гуру
03.07.13
15:20
говорят что решение ИТМО по G задаче было ближе всех к истине :)
188 Fragster
 
гуру
03.07.13
15:22
где финальные результаты-то?
189 Попытка1С
 
03.07.13
15:26
Интересно что за задачка была.
190 toypaul
 
гуру
03.07.13
15:26
(189) минимальное покрытие прямоугольниками "страны" :)
191 toypaul
 
гуру
03.07.13
15:27
по рейтингу в таблице смешно прокоментровали ведущие = Раша, Чайна, Чайна, Раша, Раша, Чайна. Типа где остальные :) ?
192 toypaul
 
гуру
03.07.13
15:33
задача B про игру в казино. ее только Токио решили.
193 Fragster
 
гуру
03.07.13
15:37
(192) те, что сейчас отражаются как pending - они подали решение меньше, чем за 60 минут до конца. могут и засчитать.
194 toypaul
 
гуру
03.07.13
15:38
(193) ясно
195 Попытка1С
 
03.07.13
15:40
Вышли девушки с мочалками танцевать, скоро результат походу объявят)
196 NS
 
03.07.13
15:43
"B" у ИТМО пишут что точно засчитали. Вопрос в "G"
И у ИТМО точно первое место.
197 Fragster
 
гуру
03.07.13
15:45
а что тут мюнхен делает? где финальная таблица?
198 Попытка1С
 
03.07.13
15:45
(196) Крутяк!
199 NS
 
03.07.13
15:45
(197) Еще не было объявления результатов.
200 Fragster
 
гуру
03.07.13
15:46
видео тупит :(
201 Попытка1С
 
03.07.13
15:48
(200) У меня все хорошо кажет.
202 toypaul
 
гуру
03.07.13
15:49
Смотрю я на задачи B и G и не понимаю, что в них сложного :)
Неужели другие задачи проще :)
203 NS
 
03.07.13
15:50
(202) Где ты взял их условие?
204 Попытка1С
 
03.07.13
15:50
Судя по результатам самая простая задача F
205 toypaul
 
гуру
03.07.13
15:51
(203) видео надо было смотреть :)
206 NS
 
03.07.13
15:51
(205) Расскажи своими словами их условие.
207 toypaul
 
гуру
03.07.13
15:51
за Ижевск обидно - перевелись видать у нас талаланты :)
208 Fragster
 
гуру
03.07.13
15:51
209 Fragster
 
гуру
03.07.13
15:52
проблема в том, что ресурсы ограничены
210 NS
 
03.07.13
15:52
(202) Если тебе они кажутся очень простыми, значит ты не понял условие. Ибо лучшие программисты мира их решить не смогли.
211 Fragster
 
гуру
03.07.13
15:53
Б - найти минимальное число, для которого число вариантов разложения на простые множители равно искомому
212 toypaul
 
гуру
03.07.13
15:53
(210) чо и выпендрится нельзя :)
213 Fragster
 
гуру
03.07.13
15:54
Ж - найти минимальное число прямоугольных клеток, на которых можно разметить многоугольник
214 NS
 
03.07.13
15:54
(211) Ты уверен что это B? А где-же тогда А?
215 Fragster
 
гуру
03.07.13
15:54
проблема в том, что ресурсы по памяти и по процессору (времени выполнения) ограничены
216 Fragster
 
гуру
03.07.13
15:55
(214) см. 208 - они там сверху вниз
217 toypaul
 
гуру
03.07.13
15:55
218 NS
 
03.07.13
15:56
(215) Не совсем понял. Типа я в шахматы играю лучше всех, только проблема в том что нужно играть по правилам?
Суть задачи не в том чтоб выдать решение которое будет считаться миллиард лет. Это не решение.
(216) Ошибаешься. Там первая задача например вообще не с ICPC. А просто так, образец.
219 Fragster
 
гуру
03.07.13
15:56
(217) ?? почему так?
220 toypaul
 
гуру
03.07.13
15:56
(219) в видео так было :)
221 Fragster
 
гуру
03.07.13
15:57
(218) тогда нужна таблица соответствия
222 NS
 
03.07.13
16:03
Только что сказали - ИТМО все задачи.
223 toypaul
 
гуру
03.07.13
16:09
(222) супер
224 Попытка1С
 
03.07.13
16:09
(222) Красавцы!
225 Попытка1С
 
03.07.13
16:21
"Taras Shevchenko Kiev National University"

Чел на 7 месте, он что один все решал?
226 NS
 
03.07.13
16:30
(225) Это университет имени Тараса Шевченко.
227 Попытка1С
 
03.07.13
16:30
Произношение английское у нашего ведущего отвратное.
228 Попытка1С
 
03.07.13
16:30
(226) ))
229 Попытка1С
 
03.07.13
16:43
Осталось 2 места объявить.
230 Попытка1С
 
03.07.13
16:44
Все наши первые!
231 NS
 
03.07.13
16:45
Shanghai Jiao Tong University, второе место, 9 задач.
232 NS
 
03.07.13
16:46
Ну и трансляция, так и не увидел что они решили.
233 NS
 
03.07.13
16:58
Всё, нашел. Не решили они G.
ITMO solved 10 out of 11 questions correctly.
http://icpcnews.tumblr.com/post/54508561834/and-the-winner-is
234 Попытка1С
 
03.07.13
17:04
(233) Так эту задачу походу никто не решил.
235 NS
 
03.07.13
17:40
В первых 16 мест 7 российских команд, 2 китайских и 2 польских, остальные по одной.
236 Escander
 
03.07.13
18:20
(235) это получается среди поляков хватает сильных программистов?
237 Escander
 
03.07.13
18:28
(235) опять-же 9 из 16 - команды exUSSR!!!

Какую страну профукали...
238 NS
 
03.07.13
18:32
(236) Да, значит не только Томек Чайка у них крутой.
239 GANR
 
03.07.13
18:39
(0) А какого класса задачи там будут решаться на тестировании??? Учетные, математическое программирование или еще чего-то?
240 GANR
 
03.07.13
18:47
Так как мой опыт в математическом программировании не очень богат, да и на C++/Pascal в последний раз я программировал лет 6 назад, конено, решу, но во время не уложусь.

Нет
241 NS
 
03.07.13
19:35
(240) олимпиадные. Не уверен что кто-либо в мире может быть уверен что решит любую олимпиадную задачу. Даже без лимита по времени.
242 МуМу
 
03.07.13
19:54
Никогда не понимал зачем заниматься бесполезными задачами , когда вокруг столько всего интересного но которое при этом будет приносить деньги.  Я например в прошлом году занимался несколькими задачами
Построение оптимальных запросов с помощью  самообучающейся экспертной системы.
Построение кластерной,реалтайм системы для различных СУБД.
Построение транзакционной шины данных для гетерогенных сред.
В этих задачах и математики хватает и программирования. Самое главное что эти задачи в том или ином виде решены и начинают уже приносить деньги. Зачем тратить свои усилия на бесполезные задачи? Не понимаю!
243 МуМу
 
03.07.13
19:57
Правда на досуге занимаюсь одной бестолковой задачи, построением полиномиальных алгоритмов разложения числа на простые множители. Не уверен что когда нибудь ее решу, но вроде как разминка мозгов. Да и цель должна же быть какая то высокая невыполнимая в жизни:)
244 NS
 
03.07.13
19:57
(242)
1. Хобби.
2. Есть единственный способ сравнить свой уровень с другими программистами - чемпионаты по программированию.

У тебя есть хобби? Или не понимаешь зачем это нужно? :)
245 МуМу
 
03.07.13
19:58
(244) Лучше если хобби совместить с работой.
246 NS
 
03.07.13
19:58
(243) Никогда не понимал зачем заниматься бесполезной факторизацией, когда вокруг cтолько... :)
247 МуМу
 
03.07.13
20:00
Если бы я в детстве занимался футболом. Я был бы с большим удовольствием профессиональным футболистом.:) Возможно об ИТ и не думал бы.
248 NS
 
03.07.13
20:01
(245) Тренировка ума, скорости написания и понимая условия задачи, навыков алгоритмирования - пригодится в работе. То есть это хобби, которое развивает рабочие качества. Точнее само участие не развивает конечно, а вот подготовка к нему позволяет стать более сильным программистом.
249 педальный трактор
 
03.07.13
20:51
(248) А если кандидат на собеседовании не ответит на вопрос почему люки круглые. Вряд ли его спасут места на олимпиаде.

Все - таки одно дело иметь навыки крутить всю жизнь массивы, списки на скорость, а другое дело широкий кругозор.

Например, американские, европейские университеты имеют в сто раз больше ресурсов чтобы заманить гениев к себе в универ. Ну сам подумай, никто никогда не пойдет учиться в ИТМО, если его берут ,например, в МГУ или в университет Миссисипи или Кембридж.

Да, олимпиадные задачи пригодятся чтобы решать задачи 100 летней давности типа сортировки пузырьком.

Сдается мне эти олимпиады придумали как конвеер для создания рабов-кодеров для решения узких задач капиталистов.
250 NS
 
03.07.13
21:26
(249) эти олимпиады не чтоб научиться писать, а чтоб оценить и показать свой уровень. Чтоб хорошо выступать нужно
1. Уметь быстро и правильно прочитать задание.
2. Уметь быстро и безошибочно писать код.
3. Понимать что такое сложность алгоритма, и уметь быстро придумать алгоритм с хорошей сложностью для нестандартнлй задачи.

И именно поэтому ведущие фирмы-разработчики софта набирают сотрудников с победителей олимпиад, и именно путем взятия на работу сильных олимпиадах окупают затраты на проведение и призовой фонд.

Не участие в олимпиадах повышает уровень программиста, а уровень программиста можно оценить результатами на олимпиадах. А это не одно и то же.

Насчет итмо - лидер рейтинг листа topcoder и codeforce - учится именно в итмо. А взяли бы я думаю его в любой топовый айтишный вуз мира. Только зачем идти в другой вуз, если лучших програмистов готовит итмо? Что доказывает уже пятый титул чемпиона мира среди вузов.

Задач сравнимых с сортировкой пузырьком на чемпионатах мира естественно не бывает.
251 NS
 
03.07.13
21:27
Виноват, на topcoder он в данный момент второй.
252 NS
 
03.07.13
21:40
По словам вице-президента спонсора турнира корпорации IBM Майкла Карасика, всем членам команд, завоевавшим золото, будет предложена работа в IBM. Таким образом, питерским студентам придется сделать сложный выбор - продолжить работу на лидера среди российских соцсетей или попробовать свои силы в одной из крупнейших мировых IT-корпораций.

РИА Новости http://digit.ru/it/20110531/382217588.html

Кроме IBM и вконтакте среди спортивных программистов  набирают сотрудников такие компании как Яндекс, Гугл, Майкрософт, Фейсбук и т.д.
253 sda553
 
03.07.13
23:51
Продолжаю разбирать тестовый раунд. Удивила вторая задача, почему так мало решивших, ведь это известная всем задача Эрдеша-Страуса http://en.wikipedia.org/wiki/Erd%C5%91s%E2%80%93Straus_conjecture
254 NS
 
04.07.13
00:03
(253) Я даже её условие не смотрел. :) Решил первую, посмотрел какую больше решают, посмотрел третьей, решил её, остальные даже не читал.

И в википедии не вижу быстрого решения.
255 NS
 
04.07.13
00:07
В условии a,b,c - различные ПОЛОЖИТЕЛЬНЫЕ числа.
256 NS
 
04.07.13
00:25
Хотя небольшая подсказка в википедии есть - решать нужно брутфорсом.
257 sda553
 
04.07.13
12:00
(256) Там все есть в этой статье, включая все алгоритмы нахождения этих дробей.
Я набросал такое решение ко второй задаче
http://yadi.sk/d/l1ddqnIo6TjTp

там применяется в зависимости от обстоятельств полиноминальный алгоритм (самы простой на случай n%3=2), алгоритм грейди (выдаст решение если повезет) и наконец когда ничего из этого не помогло то брутфорс
258 NS
 
04.07.13
13:09
(257) Оно проходит тесты?
259 NS
 
04.07.13
13:11
На случаи закладываться в олимпиадном программировании (ускорять отдельные случаи) не имеет смысла, так как тесты специально подбираются согласно условиям данным в задаче так, чтоб было максимальное время выполнения. То есть в самом сложном тесте не будет ни одного n такого, что n%3=2.

Поэтому нет смысла рассматривать эти случаи, и нужно писать чисто брутфорс.
260 NS
 
04.07.13
13:12
Даже если нет таких тестов изначально - например на codeforces есть такое понятие как взлом.
261 sda553
 
04.07.13
13:21
(258) А фиг знает, я скачал тесты, распаковал, а как пользоваться ими, я не понял.

Набил сам всяческих случайных чисел, например при входном файле с 9-ю строками:
9
4
32
6700
1543
870
33540
321
458
752

Отрабатывает за доли секунды и выдает
6 3 2
352 32 11
7880936097300 2807301 1676
354737573202 595599 386
8992823730 94831 218
4944425712208710 70316611 8386
75125556 8668 81
70074 458 153
188752 752 251
262 NS
 
04.07.13
13:52
(291) А там нет возможности отослать решение?!
263 NS
 
04.07.13
14:13
У меня есть такая возможность.
264 NS
 
04.07.13
14:16
(261) Отправил я твое решение, на третьем тесте TL, не укладывается в две секунды.
1 ok 4ms / 384.00Kb
2 ok 3ms / 380.00Kb
3 time-limit-exceeded 2.04s / 260.00Kb
265 sda553
 
04.07.13
14:22
ага, где то надо 0,04s сэкономить
266 NS
 
04.07.13
14:24
(265) Намного больше надо сэкономить. Через две секунды выполнение аварийно прекращается. Это не значит что у тебя программа за 2 секунды с копейками завершила тесты.
Сам третий тест - 14497 чисел от 4 до 15000.
Это не самый сложный тест.
267 NS
 
04.07.13
14:26
Вру, это второй тест. Третьего в архиве не вижу.
268 NS
 
04.07.13
14:45
Попробуй для теста в цикле 15000 раз разложить на сумму дробей число 4/14983
269 sda553
 
04.07.13
14:53
(268) На моей виртуальной машина справился меньше чем за долю секунды.
В выходном файле 15000 строк вида
3150163628363442 56126319 3746
3150163628363442 56126319 3746
3150163628363442 56126319 3746
3150163628363442 56126319 3746
3150163628363442 56126319 3746
3150163628363442 56126319 3746
3150163628363442 56126319 3746
270 sda553
 
04.07.13
14:55
Да и так видно, что на второй тест ушло 2 ms, тут что то они непостижимо жуткое набросали в третий тест
271 NS
 
04.07.13
15:03
Сделай тест от 4 до 15000, с выводом времени счета, и посмотри на каком числе дольше всего считает. Или подвисает.
272 NS
 
04.07.13
15:06
4/7303 - сложный вариант.
273 NS
 
04.07.13
15:07
4/7951
274 sda553
 
04.07.13
15:22
хм, он у меня на числе 49 что то помер, надо поковырять
275 NS
 
04.07.13
15:31
441 42 18
276 sda553
 
04.07.13
15:50
там ошибочка была в брутфорсе от копирования,
вообщем тяжко, выходит почти 10 сек, ну его нафиг, надоело его мучить
277 NS
 
04.07.13
15:55
Дома попробую написать.
278 RomanYS
 
04.07.13
16:18
(274) а где условие этой задачи?
279 NS
 
04.07.13
16:23
(278) Представить число 4/n, где n - целое, n>=4 и n<=15000
В виде 1/a+1/b+1/c, где 2^64>a>b>c>0.
На входе до 15000 значений n, ограничение по времени 2 секунды.
280 sda553
 
04.07.13
16:24
(278)
Дана дробь 4/n, требуется представить её в виде суммы 1/a+1/b+1/c, где a > b > c — целые положительные числа.
Формат ввода

Входной файл состоит из нескольких тестовых примеров. В первой строке входного файла задано одно целое число T ? 15?000 — количество тестовых примеров. В каждой из последующих T строк содержится одно целое число 4 ? n ? 15?000.
Формат вывода

Для каждого тестового примера выведите в отдельной строке такие целые 263 > a > b > c > 0, что 4/n=1/a+1/b+1/c, или три нуля, если такое представление невозможно.
Пример
Ввод    
1
4

Вывод
6 3 2
281 NS
 
04.07.13
16:26
(278) Насколько я понимаю сейчас после регистрации условия задач доступны. В принципе и отсыл должен быть доступен.
282 RomanYS
 
04.07.13
16:34
(281) до этого у меня не дойдет )),  просто интересно что вы вдвоем так обсуждаете.
(280) спасибо
283 RomanYS
 
04.07.13
17:40
(279) а ограничение только по времени?
что мешает заранее подготовить таблицу и выдавать из неё ответы?
284 NS
 
04.07.13
17:42
(283) Ничто не мешает. Только в код таблицу включить надо.
285 sda553
 
04.07.13
17:43
(283) По памяти так же ограничение 250к
286 RomanYS
 
04.07.13
17:47
(284) для N<15000 это не проблема
(285) а вот это уже все объясняет

кроме частного случая (n%3=2), вроде таким же способом пишутся формулы для случаев:
n%3=0
n%6=4
287 NS
 
04.07.13
17:57
(285) А где такое написано?
Вижу ограничение  64Mb.
288 sda553
 
05.07.13
08:42
хм, действительно. Тогда можно просто заранее подготовить табличку от 1 до 15000 в которой уже будут лежать строки с ответами
289 Salimbek
 
05.07.13
08:49
На Республиканской олимпиаде по математике надо было написать калькулятор, который мог использовать две переменные, скобки и плюсы/минусы. Один из участников реализовал используя типа 1С-ной команды "Шаблон". Разумеется его результат не засчитали, т.к. проверяется не умение "заполнить табличку", а умение писать программы. Я думаю тут так же будет.
290 Salimbek
 
05.07.13
08:56
+289 хотя на тестовом этапе может и пройдет
291 NS
 
05.07.13
10:02
(289) (290) это называется прекалк, разрешено правилами.
292 Salimbek
 
05.07.13
10:12
(291) Прикольно, не знал
293 NS
 
05.07.13
10:22
Но задачи в которых он в принципе возможен очень редки, даже если ты делаешь прекалк он должен уложиться в время соревнований, и в этой задаче он не нужен, на форумах пишут что разложить на сумму египетских дробей за две секунды можно числа до миллиона. А не то что до 15 тысяч.
294 RomanYS
 
05.07.13
10:45
(290) насколько я понимаю, для нешкольных олимпиад, других этапов проверки  кроме тестирования нет (взломы - тоже иесты). А с читерством борются входящими ограничениями
295 NS
 
05.07.13
10:47
(294) Только что на codeforces запретили заимствование чужого кода. Так что появилась проверка кода.
296 RomanYS
 
05.07.13
10:51
(295) как это можно проверить? что является базой для проверки?
297 sda553
 
05.07.13
11:37
(293) Ну ты то добился 2 сек?
Можно кэшировать простые числа. Тогда если мы разложили какое нибудь
4/p
то легко разложим
4/(p*q) просто помножив все три числа из ответа для 4/p на q
298 sda553
 
05.07.13
14:52
б.., что то у меня и D задача не укладывается в лимит времени.
Валится на этом тесье
479001600
(это 12!)
299 NS
 
05.07.13
15:46
(297) Нет, я еще не писал.
Да, так и надо делать, аналог решета Эратосфена.
300 NS
 
05.07.13
15:47
(296) e-maxx, википедия  и т.д. Проверяют по факту жалобы.
301 sda553
 
06.07.13
13:19
Ну что? Послезавтра в квалификационный бой?
Подскажи еще, для правильного планирования времени.
Если кончился первый раунд, то сразу неуправляемо начинается второй раунд? Или после первого можно отдохнуть, выпить кофе а потом нажать кнопку "Начать второй раунд" и пойдет отсчет времени для второго раунда?
302 NS
 
06.07.13
13:30
(301) Про какие раунды идет речь?
Квалификационный тур состоит из одного раунда длительностью 100 минут.
303 NS
 
06.07.13
13:31
Главный совет - прочитать условие всех задач.
Выбрать наиболее простую, и начинать с неё.
304 sda553
 
06.07.13
13:36
А что тогда означает время в таблице положения участников тестового раунда? На какой минуте задачу послали?
305 sda553
 
06.07.13
13:37
Задача C у первого места выслана уже на 6-ой минуте да еще и с трех попыток. Читерство?
306 sda553
 
06.07.13
13:40
(304) А таблица положения участников и статистика доступна уже во время соревнований? Или только по окончании? Можно просто по ней сориентироваться какая задача простая
307 NS
 
06.07.13
14:18
(304) Естественно да.
(305) Не вижу никаких проблем для первого места сделать её за 6 минут. Турист вообще за 2 минуты её сделал. И у первого места выслана она с первой попытки.
(306) Не помню. Вроде можно, иначе с чего я вдруг третью задачу стал решать?
308 NS
 
06.07.13
14:19
(305) Откуда три попытки взял? С первой попытки у него выслана.
309 NS
 
06.07.13
14:26
Третью задачу самое быстрое решили за две минуты, первую - за шесть. Турист тоже первую сделал за 6, но выслал в темную, и скорей всего получил TL.
310 sdv2000
 
06.07.13
14:27
а сам то решил?
311 NS
 
06.07.13
14:28
(310) Что решил? Я уже вышел в основную часть.
Да, решил и первую и третью.
312 NS
 
06.07.13
14:28
Хотя нет, на первой вряд ли TL, скорей всего неверное решение.
313 NS
 
07.07.13
13:32
вот разбор задач тестового раунда.
http://codeforces.ru/blog/entry/8198
Прикол, но авторское решение второй задачи - прекалк.
Но оба решивших уложили решение в две секунды.
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) молодец, чо уж там :)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан