|
|
|
|
|
|
|
Вернуться
| 1 Неизвестный, 20 августа 2013 г. 7:39:25 | |
|
Вместо "rewrite(input, 'input.txt');" можно писать "assign(input, 'input.txt');" - это прокатывает и экономим 1 символ.
|
|
|
| 2 Яруллин Рамиль, 21 июня 2010 г. 12:03:00 | |
Ниненко А. Е, если тема вам не интересна - вас никто не задерживает, могли бы просто промолчать или написать что-то сколько-нибудь толковое, а то что вы написали - это ваше субъективное мнение и не более того :)
|
|
|
| 3 ono-tebe-nado, 11 июня 2010 г. 20:57:49 | |
|
"Тема хороша для дрoчерoв" - это справедливо только для задач для начинающих. эта тема не совсем для "дрочеров". т. к. в сложных задачах разрыв не из-за всяких ухищрений, а из-за принципиально другого алгоритма.
|
|
|
| 4 Ниненко А. Е, 11 июня 2010 г. 18:36:53 | |
|
Тема хороша для дрoчерoв, пытающихся хоть как-то прославиться в лучших попытках :)
|
|
|
| 5 Демиденко Виталий, 11 июня 2010 г. 9:52:03 | |
|
Иногдп integer лучше заменять ни на int64 или byte, а на word
|
|
|
| 6 Яруллин Рамиль, 10 июня 2010 г. 21:38:17 | |
"по-моему - самый лучший способ - писать на c++" Но в лучших попытках есть и на паскале программы! Например решение задачи "Биатлон" №440 как можно на паскале в 164 символов решить? Я сколько не сокращал у меня получилось 236. Если окончательно выжать из неё всё лишнее, то приблизительно 225 получится! Но как 164!!?
|
|
|
| 7 ono-tebe-nado, 10 июня 2010 г. 21:28:41 | |
|
а кто нибудь знает, где в системе хранятся правильные ответы на тесты?
|
|
|
| 8 ono-tebe-nado, 10 июня 2010 г. 21:11:30 | |
1. можно не выносить решение в отдельные процедуры и функции. 2. если приходится часто использовать определенный тип данных то, можно перед этим создать свой тип, например: -- type a=string; --var b, c: a; 3. если процедура изменят параметр, то лучше вместо нее использовать функцию: -- procedure myP(var b: boolean); <=> function myF: boolean; 4. использовать при решении рекурсивные алгоритмы, т. к. они очень компактны. 5. по-моему - самый лучший способ - писать на c++, т. к. там вместо begin и end используются { и } Но от этих сокращений практически нет смысла, т. к. размер exe- шника практически остается одинаковым.
|
|
|
| 9 Яруллин Рамиль, 10 июня 2010 г. 17:21:47 | |
А ещё какие-нибудь способы есть? Ну кроме этих стандартных: 1) Перед end не ставить ; 2) Вместо assign(input, 'input.txt'); reset(input); assign(output, 'output.txt'); rewrite(output); просто писать reset(input, 'input.txt');rewrite(output, 'output.txt'); 3) Заенять integer на int64 , а иногда и на byte 4) Заменять встроенные функциями простыми операциями (например sqr(x)=x*x, в левой части символов меньше), а иногда - наоборот (например (n*k-2*y)*(n*k-2*y)=sqr(n*k-2*y), уже в правой части меньше символов) 5) можно заменять writeln на write и readln на read (когда это возможно); 6) когда делаешь циклы с одной командой можно не прописывать слово begin (например когда пишешь for i:=1 to n do begin read(a[i]) end; можно заменить это просто на for i:=1 to n do read(a[i]); 7) убирать в конце close(output) 8) в начале не писать uses crt ... clrscr;
|
|
|
| 10 dAFTc0d3r Делюкин Максим, 10 июня 2010 г. 16:53:52 | |
|
Это необычная система. ;)
|
|
|
| 11 ono-tebe-nado, 10 июня 2010 г. 9:38:53 | |
|
странно, что в этой системе так можно, обычно разрешается только чтение входного файла
|
|
|
| 12 Чабаненко Владислав Дмитриевич, 10 июня 2010 г. 9:28:49 | |
|
почитай обсуждение:)
|
|
|
| 13 Чабаненко Владислав Дмитриевич, 10 июня 2010 г. 9:28:00 | |
задача неглухой телефон - просто переименовываешь файл: uses sysutils; begin renamefile('input.txt','output.txt') end.
|
|
|
| 14 Михнович Иван Вадимович, 10 июня 2010 г. 0:02:15 | |
|
Хорошая тема, годная. Мне вот тоже интересно :D
|
|
|
| 15 ono-tebe-nado, 09 июня 2010 г. 20:18:41 | |
|
вместо integer лучше пиши int64
|
|
|
| 16 Яруллин Рамиль, 09 июня 2010 г. 20:00:10 | |
Создана ,на мой взгляд, интересная тема. Очень часто смотришь на задачу, заходишь в "лучшие попытки", видишь размер кода и удивляешься :0. Так как же сократить код? Например рассмогтрим решение задачи а+в на паскале Var x,y,z:integer; begin reset(input,'input.txt'); rewrite(output,'output.txt'); read(x,y); write(x+y) end. Все равно до лучших попыток далеко! И ещё , задача неглухой телефон. У меня размер кода 122, на паскале в лучших попытках - 58! Как??Там вроде работа с файлами, но всё же... Итак, уважаемые форумчане, предлагайте свои идеи и способы по уменьшению кода. Причем обсуждение может коснуться не только этих двух задачек, а вообще в целом, какие способы существуют.
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |