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

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

Войти
Регистрация
Восстановить пароль
 
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
#1

Кратчайший ввод - C++

20.05.2011, 21:00. Просмотров 471. Ответов 5
Метки нет (Все метки)

Есть кусок кода
C++
1
2
3
4
5
6
7
//int i,x,d[200]; - в глобальном пространстве
std::fstream v("input.txt");
    v >> i;
    while(i--) {
        v >> x;
        d[x+100]++;
    }
Интересует, как его можно сжать еще сильнее=) (по количеству символов)
Использовать желательно iostream и fstream
Довольно долго думал, пришел примерно к таком варианту
C++
1
2
3
v>> i;
for(;i--;v >> x)
    d[x+100]++;
Но т.к. вначале x=0, а считывание идет в конце итерации, то последний элемент она пропускает, зато вначале лишний раз увеличивает 100ый.
Либо к такому
C++
1
2
for(;v;v >> x)
        d[x+100]++;//тут бы проигнорировать первых 2 числа как можно меньшим количеством кода..
Тоже лишний раз увеличивает, зато не надо первую переменную считывать=)
Думаю, что есть способ, но не могу до него додуматся=(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2011, 21:00     Кратчайший ввод
Посмотрите здесь:

Графы кратчайший путь ! - C++
Помогите написать функцию для поиска кратчайшего пути между вершинами которые задаются с клавы я написал правда получилось что это...

Найти кратчайший маршрут - C++
Найти кратчайший маршрут, который начинается и завершается в заданной вершине ориентированному графу, проходя через все его вершины...

Ищу информацию по графам (кратчайший цикл) - C++
Здравствуйте, я ищу информацию по циклам. У меня задачка найти кратчайший цикл в графе. Вот и я бы хотела литературу где описана данная...

Графы, расположить людей по билетам, кратчайший путь - C++
Здравствуйте. На соревнованиях codeforces я часто замечаю, что больше половины задач на тему графов, где нужно находить кратчайший путь или...

Кратчайший код: поменять два числа местами и вывести их - C++
Вот борюсь за первое место в рейтинге Задачка Swap 1000 надо ввести два числа поменять их местами и вывести их я сделал так ...

Обогнуть остров, выбрав кратчайший путь вокруг острова - C++
Во входном файле находятся: число N, задающее количество вершин многоугольника и далее координаты вершин многоугольника в виде списка x , y...

Дан набор координат точек. Начиная с первой, проложить кратчайший маршрут.... - C++
Дан набор координат точек. Начиная с первой, проложить кратчайший маршрут, который позволил бы посетить их все по одному разу. Построить...

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

Найти кратчайший путь в лабиринте, который представлен в виде составного куба заданного размера - C++
Найти кратчайший путь в лабиринте, который представлен в виде составного куба NxNxN, состоящего из маленьких кубиков. Все кубики...

Кратчайший путь между вершинами взвешенного графа, в котором есть ребра с отрицательным весом - C++
Здравствуйте! Пишут, что можно находить кратчайший путь между вершинами взвешенного графа, в котором есть ребра с отрицательным весом. Как...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
20.05.2011, 22:07     Кратчайший ввод #2
Попробуйте использовать зопетую. )
C++
1
for(std::fstream v("input.txt"), v >> i; v.good(); v >> x, ++d[x + 100]);
З.Ы. Компиляторы сейчас хорошо оптимизируют, разницы в бинарном коде скорее всего не будет.
diagon
Higher
1928 / 1194 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
21.05.2011, 07:07  [ТС]     Кратчайший ввод #3
Дожал вот так
C++
1
2
3
std::fstream v("input.txt"); //в for'e не скомпилилось
    for(v >> i; i--;  d[x + 100]++)
        v >> x;
Мне не для компилятора нужно, просто есть один сайт с олимпиадными задачами, где критериями оценки служит количество символов в коде=)
Пока что 4 место, 1 символ до 3го=)

Добавлено через 40 минут
Таки нечего там больше сжимать, кроме ввода, который теоретически можно еще на 5 символов сжать=\
dampir_sanek
150 / 148 / 21
Регистрация: 09.02.2010
Сообщений: 407
21.05.2011, 09:55     Кратчайший ввод #4
Не по теме
diagon, подскажи, что то за сайтик такой?
diagon
21.05.2011, 09:56  [ТС]
  #5

Не по теме:

http://********/?main=tasks
з.ы. ты что-нибудь слышал о тэге [ off] ?)

dampir_sanek
150 / 148 / 21
Регистрация: 09.02.2010
Сообщений: 407
21.05.2011, 10:00     Кратчайший ввод #6
diagon,

Не по теме:

нет, теперь буду знать!)) Спасибо за сайтик!

Yandex
Объявления
21.05.2011, 10:00     Кратчайший ввод
Ответ Создать тему
Опции темы

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