Как получить 100 балов за простую задачу
Решаем мы олимпиадную задачу. Задача простая, в одно действие, смысл в том, что находим сумму двух чисел, например. Написали её в PascalABC, проверили все входные, выходные данные, красиво запаковали в TurboPascal, проверили, что всё считывается из файла input.txt и выводится в output.txt! Замечательно! Отправили... и получили 10 баллов (а может и меньше).И что теперь?
Ещё раз внимательно читаем условие задачи из введения. Племянник спросил дядю, сколько тому лет. Дядя ответил:
«Если к половине моих лет прибавить A, то узнаешь мой возраст B лет тому
назад». Сколько лет дяде?
Формат входных данных
Во входном файле через пробел записано два целых числа A и
B (0 ≤ A, B ≤ 2 000 000 000).
А вот - и ОНО, самое интересное! на что мы и не обратили сразу внимание! PS:
Не устают удивлять программисты, они живут в n = мерном мире, n-
количество лет, с ними происходят удивительные вещи, которые с обычными
людьми вряд ли когда смогут произойти)
А в требованиях к оформлению задачи нам честно написали, что после отправки решения система осуществляет проверку его
корректности на тестах из примеров к условию задачи. И тестов этих наверно очень много, и вот если наша программа
проходит ВСЕ эти тесты, то она и наберёт 100 баллов!
А что я вижу в вашем решении?!!! var a, b, x: integer;
begin
readln (a, b);
x:=2*(a+b);
writeln (x);
end.
Тип integer - читаем:
Тип |
Название |
Размер |
Знак |
Диапазон значений |
integer |
целое |
2 байта |
есть |
-32 768 .. 32 767 |
Всего
то и значения от - 32768 до 32767 могут быть в тестовом задании! А по
условию задачи тесты должны быть пройдены для чисел порядка 2000000000!
Находим тип переменных, которые смогут пройти тест!
|