Модераторы: Alx, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Областная олимпиада тур 2 задача 1 
:(
    Опции темы
Strannik
Дата 18.2.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 25.1.2007

Репутация: нет
Всего: 2



1. В настольных ролевых играх часто для того, чтобы выяснить успешность какого-то действия применяют игральные кости. А поскольку действия бывают разные, то и кости для хорошей игры нужны различные. Они бывают как обычные шестигранные, так и двенадцатигранные, двадцатигранные... Причем бросают кости не один раз, а несколько, а результат потом суммируют. Обычно бросок игральной кости обозначают XdY (от английского dice) где X - количество бросков, У - число граней кости. Например, 3d6 обозначает, что нужно бросить три шестигранных кубика и сложить числа, которые выпали на гранях. Грани костей нумеруются, начиная с единицы, последовательными натуральными числами. В правилах ролевых игр указывается, какие броски необходимо совершить для проверки успешности действия с помощью выражения, содержащего целые неотрицательные числа, операции бросков костей и операций сложения и вычитания. Игроку перед совершением какого-либо действия полезно иметь представление, насколько успешным (или неуспешным) оно может оказаться.
Задание. Напишите программу DICEROLL, которая находит максимальное и минимальное значение данного выражения, которое оно может принять при некоторых исходах бросков костей.
Входные данные. Текстовый файл DICEROLL.DAT содержит одну строку, состоящую из цифр и знаков операций +, -, d, которая определяет выражение. Рядом стоящие цифры образуют числа. Все числа в выражении целые и лежат в диапазоне от 0 до 1000. Числа и знаки операций чередуются, выражение начинается и заканчивается числом. Операция d имеет более высокий приоритет, чем сложение и вычитание. В выражении не могут быть две операции d подряд и длина выражения не превышает 1000 символов. Гарантируется, что все операнды операции d - положительные числа.
Выходные данные. В единственной строке текстового файла DICEROLL.SOL должны содержаться 2 целых числа -максимальное и минимальное возможные значения выражения. 
Пример входных и выходных данных
DICEROLL.DAT    DICEROLL.SOL
2+2d6-1d8    13  -4

PM MAIL   Вверх
FireSnake
Дата 23.2.2007, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 201
Регистрация: 15.9.2006
Где: Украина, Донецк

Репутация: нет
Всего: 1



эта единственная задача(стыдно мне товарищи,стыдноsmile), по которой я набрал 100 балов из 100. Ну вроде ничего хитрого - считываем все в символьный массив, затем начинаем обрабатывать информацию между знаками "+" и "-". Для удобства можно сделать, что если последовательность начинается не со знака, то добавить знак "+" в начало.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Интересные и занимательные задачи по программированию | Следующая тема »


 




[ Время генерации скрипта: 0.0701 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.