IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Работа с олимпиадными серверами
Unconnected
сообщение 15.11.2008 19:40
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Сейчас распространена система онлайн-олимпиад,в данном случае по информатике. Понадобилось решить такую задачу.
Код
Задача 1 «Сумма»

Имя входного файла:                                                                    sum.in
Имя выходного файла:                                                                 sum.out
Максимальное время работы на одном тесте:                        2 секунды
Максимальный объем используемой памяти:                           64 мегабайта
Максимальное количество баллов                                              100 баллов

Найти сумму двух чисел

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

Первая строка входного файла содержит два числа a, b и (-2000000000 <= a,b <= 2000000000). Числа в строках разделены пробелом.

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

В выходном файле должна содержаться сумма этих чисел

Примеры входных и выходных файлов

sum.in    sum.out
  2 2         4
-10 10         0




Задача можно сказать наипростейшая. Я решил её так.
var inf,b,c,result2:string;
x:char;
a,b1,c1,result:integer;
f1,f2:text;
begin
assign(f1,'sum.in');
reset(f1);
assign(f2,'sum.out');
rewrite(f2);
read(f1,inf);
close(f1);
for a:=1 to length(inf) do
begin
x:=inf[a];
if x<>' ' then b:=b+x
else begin
c:=copy(inf,a+1,length(inf)-a+1);
break;
end;
end;
val(b,b1,a);
val(c,c1,a);
result:=b1+c1;
str(result,result2);
write(f2,result2);
close(f2);
end.


У меня программа отрабатывает как надо, создаёт файл и записывает в него сумму чисел. А сервер выдаёт, что решение неверно. Я подозреваю, что проблема в ограничениях на входные данные, которые заданы в условии.

Сообщение отредактировано: Unconnected - 15.11.2008 19:43


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Unconnected
сообщение 16.11.2008 12:29
Сообщение #2


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Цитата
Чего нет в условии? В условии нет ограничения на значение СУММЫ, в условии явно сказано: каждое из слагаемых не может превышать 2 млрд. А сумма - она и есть сумма, сколько получится - столько и надо вывести...


И правда, прочёл невнимательно...


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 22:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"