Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Bek$
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 29
#1

Сокращение кода - C++

07.01.2013, 13:46. Просмотров 1065. Ответов 18
Метки нет (Все метки)

Думаю, многие, кто занимался олимпиадным программированием, знакомы с сайтом ********. И думаю многие знают, что чем короче код, тем круче сабмит.
Сегодня я решал вырезано задачу и мне удалось сократить свой код на С++ до 129 символов. Хотелось бы узнать, как сделать его короче? Есть методы файлового ввода-вывода в C++, с помощью которых можно сократить объем кода? Каждый символ важен!!! P.S. код здесь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2013, 13:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сокращение кода (C++):

Сокращение кода - C++
Есть задача: Я решил таким способом: #include <fstream> int N,i,x,t,k,j,*G; main() { std::fstream I("input.txt"),...

Сокращение кода - C++
Всем привет! Ребят, возникла мелкая проблема. Написал программку человеку, он начал сдавать ее преподу. Та не приняла, сославшись, что код...

Сокращение кода - C++
Я учусь сокращать код на С++, для решения олемпиадных задач. (только пока еще простые задачки) Условие задачи: Сбор черники ...

Сокращение кода и времени проверки (задача) - C++
Однажды Вася очень долго просидел на остановке, прежде чем дождался своего автобуса. Чтобы как-то занять время, он решил записывать на...

Сокращение дроби - C++
Даны натуральные числа a и b, обозначающие соответственно числитель и знаменатель дроби. Сократите дробь, т.е найти такие натуральные p и...

Сокращение дроби - C++
Есть класс дроби с полями Чисельник и Знаменник. надо написать функцию сокращение дроби. сделать функцию дружественной и т.п. я умею, мне...

18
Croessmah
Эксперт CЭксперт С++
13409 / 7559 / 853
Регистрация: 27.09.2012
Сообщений: 18,601
Записей в блоге: 3
Завершенные тесты: 1
07.01.2013, 13:51 #2
Цитата Сообщение от Bek$ Посмотреть сообщение
И думаю многие знают, что чем короче код, тем круче сабмит.
Полный идиотизм, поверьте!!! Тот, кто так считает, скорее всего, никогда не программировал.
0
Bek$
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 29
07.01.2013, 13:53  [ТС] #3
Никто так не считает, это правила сайта.

Добавлено через 54 секунды
Цитата:
"В качестве критерия ранжирования лучших попыток служит размер кода закачиваемой программы. При подсчете размера кода не учитываются пробелы, а так же символы переноса и табуляции."
0
NoMasters
Псевдослучайный
1759 / 1102 / 73
Регистрация: 13.09.2011
Сообщений: 3,139
07.01.2013, 13:56 #4
Цитата Сообщение от Bek$ Посмотреть сообщение
думаю многие знают, что чем короче код, тем круче сабмит.
Не знаю, как там у ваших сабмитов, а нормальные люди считают, что читаемый код при прочих равных лучше короткого.
0
Croessmah
Эксперт CЭксперт С++
13409 / 7559 / 853
Регистрация: 27.09.2012
Сообщений: 18,601
Записей в блоге: 3
Завершенные тесты: 1
07.01.2013, 13:57 #5
Цитата Сообщение от Bek$ Посмотреть сообщение
В качестве критерия ранжирования лучших попыток служит размер кода закачиваемой программы. При подсчете размера кода не учитываются пробелы, а так же символы переноса и табуляции.
Бросайте данный сайт. Он безнадежен при таком ранжировании. Основными критериями должны быть сжираемая память, время выполнения и соответствие стандарту языка, а не количество символов в коде.
По их теории код
C++
1
std::fstream InputFile;
хуже, чем
C++
1
std::fstream i;
БРЕД!!!
1
AlvinMax
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 16
07.01.2013, 14:00 #6
вот на этом сайте гораздо лучше http://codeforces.com/
0
Bek$
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 29
07.01.2013, 14:00  [ТС] #7
Я очень редко вижу людей-олимпиадников, неукоснительно соблюдающих стандарты языка. И вообще это оффтоп. Вопрос-то ведь в другом
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.01.2013, 14:00 #8
Ну, на самом деле умение быстро сжимать/обфусцировать исходник иногда бывает очень полезным. На хабрасоревновании оно мне весьма помогло :)
Замечания по коду:
1) используется страшно неоптимальный способ ввода/вывода(более оптимальный не подскажу)
2) всегда используйте for вместо while (но только при сокращении, в нормальном коде такое делать нельзя).
1
Bek$
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 29
07.01.2013, 14:03  [ТС] #9
Про CF я знаю. И он тут не причем.

Добавлено через 1 минуту
for (;i >> x; )
Вы имели ввиду такой вариант? Но ведь он не влияет на количество символов.
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.01.2013, 14:03 #10
Цитата Сообщение от Bek$ Посмотреть сообщение
Вы имели ввиду такой вариант? Но ведь он не влияет на количество символов.
Конкретно такой - не влияет. Но вы присмотритесь повнимательнее к пустым блокам for и подумайте - может, можно их чем-то заполнить?
1
AlvinMax
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 16
07.01.2013, 14:06 #11
я использую такой ввод / вывод в файл:
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
0
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
07.01.2013, 14:07 #12
польза в таких упражнениях сомнительна, но забавы ради можно и поиграть.
вот может с временным объектом получится сократить код на пару символов: имя переменной и точка с запятой:
C++
1
2
3
4
5
// это удаляем
//std :: ofstream o ("output.txt");
 
// в последней строчке пишем:
std::ofstream("output.txt") << a;
1
Bek$
1 / 1 / 0
Регистрация: 18.03.2012
Сообщений: 29
07.01.2013, 14:09  [ТС] #13
Спасибо на таком варианте:
C++
1
for (i >> x >> x; i >> y; a += y != x + 1, x = y);
выиграл 1 символ). По поводу ввода-вывода - не подскажете хотя бы в какую сторону копать?

Добавлено через 1 минуту
Цитата Сообщение от DU Посмотреть сообщение
польза в таких упражнениях сомнительна, но забавы ради можно и поиграть.
вот может с временным объектом получится сократить код на пару символов: имя переменной и точка с запятой:
C++
1
2
3
4
5
// это удаляем
//std :: ofstream o ("output.txt");
 
// в последней строчке пишем:
std::ofstream("output.txt") << a;
Такое не компилится у меня

ааа не, все заработало) Спасибо!
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.01.2013, 14:09 #14
Цитата Сообщение от Bek$ Посмотреть сообщение
выиграл 1 символ).
Можно еще один выиграть, если использовать тело цикла(тогда пропадет запятая).

Цитата Сообщение от Bek$ Посмотреть сообщение
По поводу ввода-вывода - не подскажете хотя бы в какую сторону копать?
Выше самый годный стандартный вариант подсказали. Короче только специфичный для студии код(и гуглить его бесполезно).
1
Invader_Zim
Twilight Parasite
153 / 149 / 2
Регистрация: 21.07.2011
Сообщений: 908
07.01.2013, 14:12 #15
Ну можно еще наклепать короткосимвольных псевдонимов.
(будет выйгрыш если много раз создаеш какую нить хрень с длинным именем типа)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2013, 14:12
Привет! Вот еще темы с ответами:

Сокращение строки на 1 символ С++ - C++
Напишите программу, которая вводит строку и выводит ее, сокращая каждый раз на 1 символ до тех пор, пока в строке не останется 1 символ. ...

Double сокращение с точность до N знаков - C/C++ - C++
Хочу написать программу сокращающую число знаков после запятой на какое-то определённое количество заданное с клавиатуры (n). Пробовал...

Оптимизация [сокращение времени выполнения] - C++
Всем привет! В общем стояла такая задача: Посчитать среднее количество букв в предложении, состоящем из символов &quot;A-Z&quot;, &quot;a-z&quot;, &quot;0-9&quot;,...

Оптимизация [сокращение времени выполнения] - C++
Здравствуйте, стояла такая задача: Была сделана следующая программа: #include &lt;iostream&gt; using namespace std; int lucky(int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
07.01.2013, 14:12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru