Аватар для Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162

Можно ли еще сократить код?

07.07.2013, 21:30. Показов 3828. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа, которая должна считать данные из файла input.txt и записать ответ в фаил output.txt. Программа должна сложить 2 числа не превосходящих 10^9. Можно ли еще уменьшить код??
C++
1
2
3
4
5
6
7
8
9
#include <fstream>
long a,b; 
main()
{
    std::ifstream cin("input.txt");
    std::ofstream cout("output.txt");
    cin>>a>>b;
    cout<<a+b;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.07.2013, 21:30
Ответы с готовыми решениями:

Скажите, пожалуйста, возможно ли код сократить еще?
Вот код моей программы. #include &lt;fstream&gt; int a,b,c; main(){ std::fstream i(&quot;input.txt&quot;),o(&quot;output.txt&quot;, 2); ...

как можно ещё сократить код?
#include&lt;iostream&gt; main(){ int n; std::cin&gt;&gt;n; std::cout&lt;&lt;n*(n+1)/2+1; }

Как можно еще оптимизировать код?
Как еще можно оптимизировать данный код? Если вкратце, то он выводит значение АВ, если ключ = вводу пользотвателя. #include...

38
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
07.07.2013, 22:31
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Nikko12 Посмотреть сообщение
Программа должна сложить 2 числа не превосходящих 10^9.
А это просто так написано было?
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
07.07.2013, 22:34
111 байт.
C++
1
2
#include<fstream>
long a,b;int main(){std::ifstream r("i");std::ofstream w("o");r>>a>>b;w<<a+b;}
1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
07.07.2013, 22:39
alsav22, где input.txt и output.txt из задания?
0
 Аватар для Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 22:52  [ТС]
Tulosba, Простите, был не прав, можно Long на int заменить.

Добавлено через 4 минуты
alsav22, Спасибо

Добавлено через 50 секунд
Цитата Сообщение от Tulosba Посмотреть сообщение
alsav22, где input.txt и output.txt из задания?
i и o и есть input.txt и output.txt Сокращенный вид
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
07.07.2013, 23:02
У меня какое-то время на этой задаче 54 символа было. Потом злой админ удалил мою посылку :(
Конкретно на этой задаче на плюсах в топ попыток попасть никак не получится (вернее, получится, но опять удалят посылку).
Проще всего найти какую-нибудь сложную задачу, посидеть над ее сокращением пару часов, и вы почти гарантированно попадете в топ. А на простенькие задачи смотреть не стоит - все топовые позиции уже расхвачены различными читерами.
Цитата Сообщение от Nikko12 Посмотреть сообщение
Можно ли еще уменьшить код??
Да, можно. Символов на 15-20.
0
 Аватар для Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
07.07.2013, 23:06  [ТС]
diagon, Если не секрет, за что удалят решение?? Ведь все решено верно
0
 Аватар для Bend3r
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
08.07.2013, 03:58
stream f;
f.open("Имя файла");
Только расширение файла придется тебе добавлять с помощью strcpy.
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 04:03
Bend3r, более короткий код в студию!
0
 Аватар для Nikko12
2 / 2 / 0
Регистрация: 07.06.2013
Сообщений: 162
08.07.2013, 07:24  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
#include<fstream>
long a,b;int main(){std::ifstream r("i");std::ofstream w("o");r>>a>>b;w<<a+b;}
Можно еще сократить:
C++
1
2
#include<fstream>
long a,b;int main(){std::fstream r("inpit.txt");std::ofstream w("output.txt");r>>a>>b;w<<a+b;}
110 байт
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
08.07.2013, 07:58
В 22 посте я неправильно написал, там 97 байтов.
Цитата Сообщение от Nikko12 Посмотреть сообщение
Можно еще сократить:
Здесь - 113.
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
08.07.2013, 14:14
C++
1
2
3
4
5
#include <ios>
main()
{
  system("for /f \"tokens=1,2\" %a in (input.txt) do set /a %a+%b >output.txt");
}
Думаю, дальше надо в строке делать пробельные символы и декодировать её в цикле.
Вообще самая ненормальная идея, которая у меня была насчёт [читерства на] acmp, - это написать ассемблерную вставку, которая состоит в основном из пробельных символов и генерирует основной код, который решает задачу. Это было давно, так что подробности не помню, но вроде у меня какой-то вариант создания любого кода любого размера из небольшого количества непробельных символов получился в теории, но трудоёмкость создания всего этого оказалась слишком большой, чтобы реально попробовать (что-то типа десятка adc на каждые 4 байта генерируемого в регистре кода). К тому же, чтобы избавиться от include, надо ещё или заранее узнать адреса системных функций в системе, где будет тестироваться (например, можно вытащить набором решений, которые будут побитово выдавать адреса правильностью ответа), или ещё динамически искать базу kernel32, копаться в таблице экспорта и грузить потом остальные dll'ки.
2
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
08.07.2013, 14:32
Цитата Сообщение от Somebody Посмотреть сообщение
которая состоит в основном из пробельных символов
На ацмп их убрали уже. Теперь там не учитываются только пробелы и переносы строк.
Я когда-то пробовал реализовать подобную идею, только в system подавал код на vbs'ке. На 3 тесте стабильно TLE + падение тестирующей системы. После ~5 попытки мне в личку написал разгневанный админ, которому надоело постоянно чинить систему :) Просто system создает отдельный процесс, по мере прохождения тестов эти процессы накапливаются и намертво вешают систему, насколько я понял.
2
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
08.07.2013, 18:57
Цитата Сообщение от diagon Посмотреть сообщение
Просто system создает отдельный процесс, по мере прохождения тестов эти процессы накапливаются и намертво вешают систему, насколько я понял.
Вообще этот процесс должен завершаться по-хорошему. Во всяком случае, думаю, помнишь вот это - я тогда с system раз по 10 подряд отправлял, но админ мне не писал
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
08.07.2013, 19:15
Цитата Сообщение от Somebody Посмотреть сообщение
Вообще этот процесс должен завершаться по-хорошему. Во всяком случае, думаю, помнишь вот это - я тогда с system раз по 10 подряд отправлял, но админ мне не писал
Видимо, echo завершается быстро, а вот vbs'ки тормозят.
0
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
28.07.2013, 17:23
Меня одного смущает то что там у фу-и main нету типа (int)
Цитата Сообщение от Nikko12 Посмотреть сообщение
main()
И что там есть cout, но нету std::
или
C++
1
using namespace std;
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
28.07.2013, 17:29
Цитата Сообщение от Даниил1991 Посмотреть сообщение
Меня одного смущает то что там у фу-и main нету типа (int)
И что там есть cout, но нету std::
или
C++
1
using namespace std;
cin, cout - это его файловые потоки, а не стандартные, о чём я ТС и пишу, но он все-равно продолжает свои потоки называть именами стандартных.
0
68 / 41 / 1
Регистрация: 14.05.2013
Сообщений: 383
28.07.2013, 17:34
А-а-а, извините, я не знал этого

Добавлено через 22 секунды
Но про main я точно прав, потому что у меня ошибку выбивало
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
28.07.2013, 17:52
Цитата Сообщение от Даниил1991 Посмотреть сообщение
Но про main я точно прав, потому что у меня ошибку выбивало
Тут подгоняется под acmp.ru, там вроде VC++ 7.1, в нём работает. А так вообще да.
0
 Аватар для Schizorb
512 / 464 / 81
Регистрация: 07.04.2012
Сообщений: 869
Записей в блоге: 1
29.07.2013, 08:28
Цитата Сообщение от Nikko12 Посмотреть сообщение
Можно ли еще уменьшить код??
Еще можно использовать класс fstream вместо ifstream и ofstream. Если схитрить с учетом особенностей тамошнего компилятора, код немного сократится.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.07.2013, 08:28
Помогаю со студенческими работами здесь

Поделитесь советом. Как сократить еще 1 символ. =)
c&gt;&gt;a; a--; while(g+=a&amp;1, a/=2); o&lt;&lt;g%3; Подскажите, пожалуйста, реально ли укоротить ее еще? )))

Сократить код, переделав if
#include &lt;iostream&gt; #include &lt;math.h&gt; #pragma hdrstop #pragma argsused using namespace std; int main(int argc, char* argv) ...

Как можно сократить массив?
Как можно сократить масив? К примеру есть масив: A =...

Сократить код на два символа
сокртить код #include &lt;fstream&gt; main(int n) { std::fstream I(&quot;input.txt&quot;), O(&quot;output.txt&quot;, 2); I&gt;&gt;n; O&lt;&lt;(n &lt;=0 ? (n - n*n) / 2...

Крестики нолики(сократить код)
а как в крестиках ноликах можно заменить проверку двух подряд крестиков? //////////////////////HORIZONTAL/////////////// if(a==a...


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

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Опции темы

Новые блоги и статьи
Гайд, как ворваться в вайб-кодинг в мае 2026
Noname2331 17.05.2026
Простите за получившееся полотно текста, я даже не знаю, как его разбить на главы. Тут, что называется, ни добавить ни убавить, одна сцена одним дублем. На моих глазах недавно случилось чудо. Как. . .
[golang] Алгоритм «Хак Госпера»
alhaos 17.05.2026
Алгоритм «Хак Госпера» Хак Госпера (Gosper's Hack) — алгоритм нахождения следующего по величине числа с тем же количеством установленных бит. Придуман Биллом Госпером в 1970-х, опубликован в. . .
Рисование бинарного древа до 6-го колена на js, svg.
russiannick 17.05.2026
<svg width="335" height="240" viewBox="0 0 335 240" fill="#e5e1bb"> <style> <!]> </ style> <g id="bush"> </ g> </ svg> function fn(){ let rost;/ / высота древа let xx=165,yy=210,w=256;
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов, содержащихся в реализации модуля. По-умолчанию все члены модуля доступны: module Foo let x = 10 let boo () = printfn "boo" . . .
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru