Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Олимпиадные задачи и алгоритмы на C++


Информационный Канал Subscribe.Ru


Олимпиадные задачи и алгоритмы на C++

    Здравствуйте, уважаемые подписчики. Это первый выпуск рассылки. Для начала я предлагаю вам решить несколько простых задач. Для каждой задачи, в зависимости от уровня сложности, установлено количество баллов, которые будут начислены вам за правильное решение. Свои решения вы можете писать с использованием Borland C++ 3.1 или Visual C++ 6.0. Решения можно отсылать по адресу accepted@narod.ru до субботы следующей недели (24 апреля 2004) включительно. В воскресенье ваши решения будут проверены на наборе тестов. Решение засчитывается, если пройдет все тесты. Результаты, тесты и авторские решения будут также высланы вам в воскресенье вечером. Более подробно об оформлении решений и тестировании читайте ниже. А теперь, условия задач:


Задача №1 "Сумма чисел" (3 балла).

Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек. на тест
Ограничение по памяти: 1 Mb

Условие

    Написать программу, которая считывает из входного файла n целых чисел и выдает сумму этих чисел в выходной файл.

Формат входного файла

    В первой строке входного файла содержится целое число n, 1 <= n <= 10000. Во второй строке содержатся n целых чисел, сумму которых надо найти: -10000 <= ai <= 10000.

Формат выходного файла

    В выходной файл выдать одно целое число - сумму чисел ai.

Пример входного файла (input.txt)


5
9 15 -3 4 6

Пример выходного файла (output.txt)

31


Задача №2 "Скобочное выражение" (4 балла).

Входной файл: input.txt
Выходной файл: output.txt
Ограничение по времени: 5 сек. на тест
Ограничение по памяти: 1 Mb

Условие

    Введем определение правильного скобочного выражения:

  • Пустая строка - правильное скобочное выражение.
  • Если строка A - правильное скобочное выражение, то (A) - правильное скобочное выражение.
  • Если строка A - правильное скобочное выражение, то [A] - правильное скобочное выражение.
  • Если строки A и B - правильные скобочные выражения, то AB (конкатенация строк A и B) - правильное скобочное выражение.

    Примеры правильных скобочных выражений:
()
([])
()[][()]
([])[(())([[]])(()[])]

    Примеры неправильных скобочных выражений:
(((
(])
()([)]

    Требуется определить, является ли данная строка правильным скобочным выражением.

Формат входного файла

    Входной файл состоит из одной строки. Ее длина не превышает 60000 символов. В строке содержит только следующие символы: '(', ')', '[', ']'.

Формат выходного файла

    В выходной файл выдать YES, если входная строка является правильным скобочным выражением, или NO, в противном случае.

Пример входного файла (input.txt)


[()]

Пример выходного файла (output.txt)

YES

Пример входного файла (input.txt)


[(]

Пример выходного файла (output.txt)

NO


Оформление, отправка и проверка решений.

    На проверку принимаются решения, написанные на языке C++. Отправляйте свои письма по адресу accepted@narod.ru. Решение должно содержаться в одном файле, вложенном в ваше письмо. Для компиляции, по вашему выбору, будет использоваться программа bcc.exe (Borland C++ 3.1) или cl.exe (Microsoft Visual C++ 6.0). Размер исходного кода не должен превышать 40 Kb. Для каждой задачи отправляйте отдельное письмо. В теле письма укажите следующие данные (пример):

ник (*): vasya
пароль (*): a193z458w2
фамилия: Иванов
имя: Василий
e-mail: vasya@hotmail.com
номер задачи (*): 1
компилятор (*): cl

    (*) обозначены обязательные для заполнения поля. Ник и пароль вы сами придумаете при отправке своего первого письма. В последующих письмах указывайте те же самые ник и пароль. Я пока не придумал, что делать, если два человека используют один и тот же ник. Так что, старайтесь придумать его так, чтобы никто до вас его еще не придумал :-) Если вы укажите свой e-mail, то с этой проблемой будет легче разобраться. В качестве компилятора укажите bcc или cl. И, главное, не забудьте указать номер задачи!

    При проверке решений, используются стандартные правила acm. Их можно найти, например, на сайте http://acm.baylor.edu. Проверка решений осуществляется на наборе тестов, недоступных участникам. Решение считается принятым, если выдало верный ответ на каждом из тестов. Программа должна считывать данные из указанного в условии входного файла и выдавать результат в указанный в условии выходной файл. Она не должна работать с другими файлами или каталогами. Входной файл нельзя открывать для записи. При доступе к входному и выходному файлу вы должны предполагать, что они находятся в текущей директории. Не используйте консольный ввод или вывод.


    В следующем выпуске будут решения к задачам 1 и 2, несколько новых задач, а также немного теории. Тему для теории я еще не выбрал. Если у вас есть какие-нибудь предложения, то пишите.

Ведущий рассылкой: Виктор Журавлев
Вопросы, пожелания, предложения пишите на мой e-mail.


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу


В избранное