Техасская деревня
А в остальном у нас всё хорошо! Участники вчера заказали 3 пиццы, а им принесли 4. И каких!
(здесь должна быть фотография)
Прибыли!
Сегодня в 14:00 в Саратовском госуниверситете состоится пресс-конференция с Чемпионами, на которой (я надеюсь) будут показаны видеофрагменты с церемонии награждения.
(ушёл делать видеофрагменты)
Добро пожаловать в мини-чемпионат по программированию - 2007!
Решениями задач являются исходные тексты программ на одном из следующих языков программирования:
- Borland Pascal 7.0 (PAS)
- Borland C/C++ 3.1 (C, CPP)
- Borland Delphi 7 (DPR)
- Microsoft Visual Studio .NET 2005 C++ (CXX)
- Java - J2SE 1.5 (JAVA)
- Python 2.5 (PY)
Обсуждение правил проходит в этой теме
[ ещё! → ]
Java Challenge
Вкратце правила таковы: участникам выдаётся интерфейс родительского класса, говорится, какие методы надо переопределить, и каковы условия выигрыша. После чего выделяется 2 часа времени на написание программы.
Условие формулируется так, чтобы классы реализовывали какой-нибудь искусственный (противоестественный) интеллект, и их в результате можно было стравить друг с другом. Дабы травля была веселее, организаторы заранее пишут обвязку - графическое представление и турнирную систему.
Мне довелось поучаствовать в этой забаве 1 раз, в 2003 году. В нужное время команду СГУ№3 сопроводили в зал, в котором на следующий день проведут основной тур, и изолировали от остальных членов нашей делегации на следующие 2 часа. В том числе и от меня - ведь я в тот раз был в качестве тренера.
Однако тренерам тоже дали повеселиться. В другом зале была объявлена свободная регистрация команд, и мы с пользователем ralekseenkov@mail.ru, взяв в команду ещё одну девушку из Белоруссии (или из Украины?) засели за компьютер, писать противоестественный интеллект для управления адским гоночным болидом.
Болид умел разгоняться, тормозить, поворачивать, ездить задним ходом. Кроме этого адская машина умела включать неуязвимость, стрелять запасными колёсами, и останавливаться, если у неё кончился керосин.
Так как организаторы собирались устроить гонки, на трассе были checkpointы, которые нужно было посещать по порядку и за которые давали очки. Очки также давали за удачный удар по вражеской машине, за удачное попадание колесом по вражеской машине. Самой вражеской машине от удара становилось плохо, и она теряла какое-то количество керосина.
От надругательств со стороны вражеских машин (а также от последствий своих ударов) спасал вовремя включённый режим неуязвимости, который был сделан очень правдоподобно - на крыше появлялась мигалка и включался спецсигнал. Однако, включённый спецсигнал приводил к удвоенному расходу керосина, и это нужно было учитывать при выборе стратегии поиска заправок, которые присутствовали на трассе.
Все вышеперечисленные апгрейды на машину привели к тому, что вместо мирной гонки получилось адское мочилово. Очевидно, что в данных правилах побеждает та машина, которая сможет продержаться на трассе как можно дольше. При этом ездить по чекпойнтам практически бессмысленно, посколько больше очков давали за банальную драку. В результате в тот противоестественный интеллект, который вымучали мы со Snailом, были заложены следующие гениальные тактические решения:
1. Если остаётся меньше чем полбака керосина - нужно немедленно ехать на ближайшую заправку (по возможности расталкивая все машины, кто не спрятался - я не виноват)
2. Если поблизости находятся враги - немедленно включаем неуязвимость и не выключаем, пока враги не уберутся подальше
3. Если больше заняться нечем - едем к следующему чекпойнту.
Эта поистине гениальная стратегия позволила в неофициальном зачёте машине по имени kg занять четвёртое место. Или третье? Чуть чуть не дотянули :)
А вот с Java Challenge нашей основной команды вышел жестокий облом. Просмотр боёв по классической формуле "хлеба и зрелищ" был совмещён с ужином, смертельные гонки проецировались на большие экраны в большом зале.
До середины мероприятия всё было хорошо, машина наших чемпионов уверенно лидировала, выживая в самых безнадёжных ситуациях, и всерьёз претендовала на
До тех пор, пока по неизвестной причине организаторы не решили перезапустить чемпионат заново.
Во втором прогоне, результаты которого и пошли в зачёт, машину как будто подменили. Совпадение, скажете вы.
Спонсором боёв без правил в тот раз, как и всегда, выступила компания IBM...
настроение: Грустное
И снова здравствуйте!
Почти онлайн репортаж
Текущее положение команд доступно по этому адресу.
Наша команда начала хорошо, кроме двух задач (B и I) которые сейчас у них решены они должны знать как делать ещё как минимум 2 задачи.
Пойду обратно в La Villita Assembly Hall - поддерживать.
upd: Начало, кстати, задержали минут на 30.
Мини-чемпионат Mail.ru
А для участников мини-чемпионата напоминаем, что решения принимаются до 17 апреля включительно.
Уже пора начинать торопиться - 3 оставшихся дня из 15 - это ровно 1/5, последний час обычного контеста В)
Желаем удачи!
Задача H: Скрудж - нефтяной магнат
Входные данные.
В первой строке входного файла содержится целое число N (1 ≤ N ≤ 100000), где N - количество месторождений. Далее в N строках записаны описания месторождений, заданные своими целочисленными координатами x_i, y_i. Два или более месторождения могут находиться в одной точке. Следующая строка содержит целое число M (1 ≤ M ≤ 100000), где M - количество прямоугольников. Далее в M строках заданы описания прямоугольников четверками целых чисел X_1,j , Y_1,j, X_2,j, Y_2,j. Два или более прямоугольника могут совпадать. Прямоугольники не могут вырождаться в отрезки или точки.
Все координаты во входном файле не превосходят 10^9 по абсолютной величине.
Выходные данные.
Выходной файл должен содержать N строк, i-ая строка должна содержать количество участков, содержащих i-ое месторождение. Месторождения следует нумеровать в соответствии с их порядком во входных данных.
Примеры:
| input.txt | output.txt | |
| Пример #1 | 4 0 0 10 0 10 10 0 10 3 0 1 1 0 9 11 11 9 9 -1 100 100 | 1 1 2 0 |
| Пример #2 | 4 0 1 1 0 1 1 0 0 1 0 0 1 1 | 1 1 1 1 |
Ограничение времени для 32-х битного компилятора: 5 секунд
Ограничение времени для 16-и битного компилятора: 20 секунд
Ограничение памяти: 64 мегабайта
Входной файл: input.txt
Выходной файл: output.txt
Задача D: Оптимизация программы
<переменная>:=<выражение>;
Оператор вывода имеет вид:
WRITELN(<выражение>);
Имя переменной всегда состоит из одной строчной буквы латинского алфавита ('A':'Z'), а выражение содержит переменные, знаки бинарных арифметических операций "#", "%", "&", круглые скобки и целочисленные константы. Выражение корректно с точки зрения стандартных математических правил.
Оптимизация программы состоит из двух фаз. Во время первой фазы в программе помечаются все строки, содержащие оператор присваивания вида "<переменная>:=<константа>;". Непомеченные в первой фазе строки подаются на вход оптимизатору. Относительный порядок следования строк при этом сохраняется.
Оператор присваивания может быть убран оптимизатором, если его удаление не влияет на результат вывода программы (следует учитывать, что этот оптимизатор не знает о возможном существовании строк, помеченных в первой фазе). Оптимизатор работает на ранней стадии компиляции и не может пользоваться правилами вычисления "#", "%", "&", а воспринимает их как некоторые абстрактные арифметические операции.
Ваша задача реализовать функциональность оптимизатора. На вход оптимизатору подаются строки программы, не помеченные в первой фазе. Вывод оптимизатора состоит из строк, поданных ему на вход, которые он не может убрать. Изменять выражения, переменные или еще как-то модифицировать программу нельзя.
Входные данные.
В первой строке входного файла содержится натуральное число N (1 ≤ N ≤ 100), где N - это количество строк, поданных на вход оптимизатору. Далее следует N строк, каждая из которых содержит оператор присваивания или оператор вывода. Все строки не содержат никаких лишних символов, комментариев и строго соответствуют описанному выше формату. Их длины не превосходят 32 символа. Входные данные не содержат пробелов. Во входных данных отсутствуют строки вида "<переменная>:=<константа>;", так как они были помечены на первой фазе.
Выходные данные.
Выведите строки программы, удалив все лишние операторы присваивания. Относительный порядок операторов менять нельзя.
Примеры:
| input.txt | output.txt | |
| Пример #1 | 5 A:=B; A:=B#C; WRITELN(A); C:=A; WRITELN(B&2); | A:=B#C; WRITELN(A); WRITELN(B&2); |
| Пример #2 | 5 C:=5#1; A:=X#Y&(Z#A); A:=A#1; B:=A&B; WRITELN(C#A); | C:=5#1; A:=X#Y&(Z#A); A:=A#1; WRITELN(C#A); |
| Пример #3 | 7 A:=B; WRITELN(A); A:=B; WRITELN(A); Z:=Z; X:=Y; WRITELN(Z); | A:=B; WRITELN(A); A:=B; WRITELN(A); WRITELN(Z); |
Ограничение времени: 2 секунды
Ограничение памяти: 64 мегабайта
Входной файл: input.txt
Выходной файл: output.txt
Сан-Антонио, день второй
ibm thinkpada. А интернет все не отключают :)
В Сан-Антонио все замечательно, за исключением того, что очень жарко. Сегодня мы встали в 9 утра (некоторые встали в 7, но я не из их числа). Гуляли по даунтауну, аламо. Катались в центре города на лодке по реке. После обеда (да обеда, собственно, у нас и не было) мы поехали на минивэне, который взяли в рент, за город. Целью нашей поездки был шнифельбах (шницельбух, шнидельбен?:) waterpark resort. В общем, в аквапарк мы ехали, но он оказался закрыт. На обратном пути отведали китайской еды. Самыми вкусными оказались рис и креветки. Остальное даже есть страшно.
В общем, всем спасибо, всем до завтра, скоро будут новые фотки.
В этом году команда СГУ тоже едет на финал.
Да, а финал в этом году в Японии и на месяц раньше.
настроение: Боевое
Без заголовка

Несмотря на то, что многим не понравилось, мне было интересно послушать о новых направлениях в информатике. Выступал Yukihiro "Matz" Matsumoto автор языка Ruby. Очень волновался, но было познавательно.
Можно отметить неуспешные попытки соперников задавить Саратов массой:
![]() | ![]() |
Кроме того, состоялась встреча на высшем уровне:

Во второй половине дня мы отправились в парк DisneySea.

Там мы славно погуляли.



Ну а завершили мы день уже традиционно для нашего тренера В) В Суши-баре.

Как обычно после поста В) мы идем спать.
Задача B: Слова
Изучая в школе литературные произведения, Андрей заметил, что некоторые слова встречаются гораздо
чаще, чем другие. Андрея очень заинтересовал вопрос, какие же слова встречаются в тексте чаще всего?
Входной файл:
Во входном файле записан текст. Слова в нем - это последовательности из прописных латинских букв.
Они разделены пробелами, переводами строк или знаками препинания.
В тексте не более 1000 слов, каждое длиной не более 20 символов.
Выходной файл:
Выведите все слова, которые встречаются в тексте в порядке убывания их частоты.
На отдельной строке выведите слово и сколько раз оно встречается в тексте.
Если несколько слов встречаются в тексте одинаковое количество раз, то выведите их в алфавитном порядке (как в словаре).
Пример входного файла:
to be or not to be?
Пример выходного файла:
be 2
to 2
not 1
or 1
Ограничение времени: 2 секунды
Ограничение памяти: 64 мегабайта
Входной файл: input.txt
Выходной файл: output.txt
Другой монитор
План
3 апреля - начало мини-чемпионата по программированию для наших читателей
5 апреля - отъезд делегации СГУ из Саратова в Москву
6 апреля - вылет вышеупомянутой делегации из Москвы в Сан-Антонио через Атланту
6 апреля, вечер по времени Сан-Антонио - мы в Сан-Антонио.
(далее в плане белое пятно, которое мы будем заполнять сообщениями с места событий)
9 апреля - регистрация команд-участников финальных соревнований
10 апреля - открытие соревнований, пробный тур
11 апреля - день Java Challenge
12 апреля - основной тур соревнований, награждение, закрытие
(ещё одно белое пятно)
16 апреля - вылет из Сан-Антонио
17 апреля - мы в Москве
18 апреля - подведение итогов мини-чемпионата мира по программированию для наших читателей.
настроение: Внимательное
Итоги подведены
Добро пожаловать в мини-чемпионат по программированию!
Решениями задач являются исходные тексты программ на одном из следующих языков программирования:
- Borland Pascal 7.0 (PAS)
- Borland C/C++ 3.1 (C, CPP)
- Borland Delphi 7 (DPR)
- Microsoft Visual Studio .NET 2003 C++ (CXX)
- Java - J2SE 1.5 (JAVA)
Обсуждение правил проходит в этой теме
[ ещё! → ]
настроение: Боевое
Начало мини-чемпионата
Без заголовка

Все, мы идем спать.
PS По возвращении выложу полноразмерную фотографию.
А завтра, между прочим, ФИНАЛ!
Начинайте болеть за нас заранее. Где-то в 16:00 по московскому времени мы должны идти завтракать, и с этого момента поддержка будет просто необходима!
Завтра финал!
Команда СГУ вместе с семьёй директора чемпионата мира:
День отъезда
Последние недели были насыщены тренировками (для команды) и просто подготовкой (для всех). Так что сложа руки мы не сидели. Команда готова всех
А в нашем мини-чемпионате зарегистрировалось уже 16 участников, и кое-кто из них даже решил кое-какие задачи :)
Компиляторы
- Borland Pascal 7.0 (PAS)
- Borland C/C++ 3.1 (C, CPP)
К 32-х битным - соответственно все остальные:
- Borland Delphi 7 (DPR)
- Microsoft Visual Studio .NET 2005 C++ (CXX)
- Java - J2SE 1.5 (JAVA)
- Python 2.5 (PY)
Чтобы их читать, Вам нужно вступить в группу







