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

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

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

> Работа с олимпиадными серверами
сообщение
Сообщение #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 -


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


mea culpa
*****

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

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


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


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


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

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


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

 





- Текстовая версия 9.09.2025 3:58
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name