1 / 1 / 1
Регистрация: 18.03.2012
Сообщений: 29
|
|
1 | |
Сокращение кода07.01.2013, 13:46. Показов 4110. Ответов 18
Метки нет (Все метки)
Думаю, многие, кто занимался олимпиадным программированием, знакомы с сайтом acmp.ru. И думаю многие знают, что чем короче код, тем круче сабмит.
Сегодня я решал вырезано задачу и мне удалось сократить свой код на С++ до 129 символов. Хотелось бы узнать, как сделать его короче? Есть методы файлового ввода-вывода в C++, с помощью которых можно сократить объем кода? Каждый символ важен!!! P.S. код здесь
0
|
07.01.2013, 13:46 | |
Ответы с готовыми решениями:
18
Сокращение кода Сокращение кода Сокращение кода Сокращение кода и времени проверки (задача) |
1 / 1 / 1
Регистрация: 18.03.2012
Сообщений: 29
|
|
07.01.2013, 13:53 [ТС] | 3 |
Никто так не считает, это правила сайта.
Добавлено через 54 секунды Цитата: "В качестве критерия ранжирования лучших попыток служит размер кода закачиваемой программы. При подсчете размера кода не учитываются пробелы, а так же символы переноса и табуляции."
0
|
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
|
|
07.01.2013, 13:56 | 4 |
Не знаю, как там у ваших сабмитов, а нормальные люди считают, что читаемый код при прочих равных лучше короткого.
0
|
Неэпический
|
|||||||||||
07.01.2013, 13:57 | 5 | ||||||||||
Бросайте данный сайт. Он безнадежен при таком ранжировании. Основными критериями должны быть сжираемая память, время выполнения и соответствие стандарту языка, а не количество символов в коде.
По их теории код
1
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 16
|
|
07.01.2013, 14:00 | 6 |
вот на этом сайте гораздо лучше http://codeforces.com/
0
|
1 / 1 / 1
Регистрация: 18.03.2012
Сообщений: 29
|
|
07.01.2013, 14:00 [ТС] | 7 |
Я очень редко вижу людей-олимпиадников, неукоснительно соблюдающих стандарты языка. И вообще это оффтоп. Вопрос-то ведь в другом
0
|
Higher
|
|
07.01.2013, 14:00 | 8 |
Ну, на самом деле умение быстро сжимать/обфусцировать исходник иногда бывает очень полезным. На хабрасоревновании оно мне весьма помогло :)
Замечания по коду: 1) используется страшно неоптимальный способ ввода/вывода(более оптимальный не подскажу) 2) всегда используйте for вместо while (но только при сокращении, в нормальном коде такое делать нельзя).
1
|
1 / 1 / 1
Регистрация: 18.03.2012
Сообщений: 29
|
|
07.01.2013, 14:03 [ТС] | 9 |
Про CF я знаю. И он тут не причем.
Добавлено через 1 минуту for (;i >> x; ) Вы имели ввиду такой вариант? Но ведь он не влияет на количество символов.
0
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 16
|
|
07.01.2013, 14:06 | 11 |
я использую такой ввод / вывод в файл:
freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);
0
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
||||||
07.01.2013, 14:07 | 12 | |||||
польза в таких упражнениях сомнительна, но забавы ради можно и поиграть.
вот может с временным объектом получится сократить код на пару символов: имя переменной и точка с запятой:
1
|
1 / 1 / 1
Регистрация: 18.03.2012
Сообщений: 29
|
||||||
07.01.2013, 14:09 [ТС] | 13 | |||||
Спасибо на таком варианте:
Добавлено через 1 минуту Такое не компилится у меня ааа не, все заработало) Спасибо!
0
|
Higher
|
|
07.01.2013, 14:09 | 14 |
Можно еще один выиграть, если использовать тело цикла(тогда пропадет запятая).
Выше самый годный стандартный вариант подсказали. Короче только специфичный для студии код(и гуглить его бесполезно).
1
|
Twilight Parasite
154 / 150 / 7
Регистрация: 21.07.2011
Сообщений: 908
|
|
07.01.2013, 14:12 | 15 |
Ну можно еще наклепать короткосимвольных псевдонимов.
(будет выйгрыш если много раз создаеш какую нить хрень с длинным именем типа)
0
|
1 / 1 / 1
Регистрация: 18.03.2012
Сообщений: 29
|
|
07.01.2013, 14:19 [ТС] | 16 |
Жаль - не пользуюсь студией(
0
|
07.01.2013, 14:55 | 17 | ||||||||||
Вот еще марсианский вариант
Выложил просто так, как вариант
2
|
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
|
|
07.01.2013, 15:07 | 18 |
хитрое сокращение.
еще один символ можно сэкономить, если вместо std::ifstream использовать std::fstream. для std::ofstream такая замена не прокатыает, т.к. чтобы это работало, нужно еще флаги открытия задавать.
0
|
1 / 1 / 1
Регистрация: 18.03.2012
Сообщений: 29
|
|
07.01.2013, 18:18 [ТС] | 19 |
0
|
07.01.2013, 18:18 | |
07.01.2013, 18:18 | |
Помогаю со студенческими работами здесь
19
Решение уравнения методом перебора (сокращение кода) Сокращение дроби Сокращение дроби Сокращение строки на 1 символ С++ Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |