Блог пользователя mental.cat

Автор mental.cat, история, 9 лет назад, По-русски

Всем привет.

Я сижу под линем и занимаюсь спортивным программированием. Причем задачки я решаю на C++, который, как известно, наиболее удобен для этой цели. И я заметил, что G++ компилит мой source.cpp... Хм, не очень быстро. Если что, я пишу в Eclipse CDT на моем ноутбуке. Итак, я пробую скомпилировать такую прогу:

#include <iostream>

using namespace std;

int main()
{
	long long a, b;
	cin >> a >> b;
	cout << a + b;

	return 0;
}

И это компилится за 0.5 с (вроде быстренько).

Теперь уберем iostream, а вместо нее добавим bits/stdc++.h, который, как известно, подключает все разом. Получаем такой код:

#include <bits/stdc++.h>

using namespace std;

int main()
{
	long long a, b;
	cin >> a >> b;
	cout << a + b;

	return 0;
}

И он компилится уже 1.2 секунды за счет bits/stdc++.h. Ок. Теперь ставим компилятору флаг -std=c++11 (все-таки одиннадцатые плюсы есть за что любить), код оставляем тем же. Компилим, видим результат: 3.7 секунды. Ну... Это уже не 0.5, да и вообще следует заметить, что 3.7 секунды — это лучший результат. Более крупные коды будут компилится от 4 до 6 секунд. Это уже точно не 0.5 секунды.

Почему это критично? Потому что две компиляции кода — это уже в среднем 10 секунд. Три компиляции — 15 потерянных секунд. Для контеста, где плюс-минус минута играет роль, это критично. Я видел, что у некоторых участников компиляция при тех же флагах на примерно таком же железе занимает 1-2 секунды.

Мой вопрос сообществу звучит просто. Можно ли как-то ускорить компиляцию C++11 с помощью G++? Я думаю, это поможет не только мне.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +53
  • Проголосовать: не нравится

Автор mental.cat, 10 лет назад, По-русски

Всем привет.

Возникла небольшая проблемка при запуске этой простой проги:

#include <bits/extc++.h>
using namespace std;
using namespace __gnu_cxx;

int main() {
    printf("Hello world");
    return 0;
}

Компилятор ругается на bits/extc++.h, а именно на то, что не может найти iconv.h (подробнее ругань компилятора можно почитать, запустив этот код даже на http://mirror.codeforces.com/problemset/customtest ). Что делать и как это исправить? А то подключать по одиночке ext/rope и все остальное неохота, когда можно подключить их всех разом. Заранее спасибо.

Полный текст и комментарии »

  • Проголосовать: нравится
  • +4
  • Проголосовать: не нравится

Автор mental.cat, 10 лет назад, По-русски

Всем привет, я недавно зарегестрировался на Codeforces, и у меня такой вопрос. Почему у меня не получается поставить фотографию на аватарку (я загружаю фото, но вместо него вижу то, что видите и вы). В чем моя ошибка? Может быть я что-то делаю неверно? Прошу помощи!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +7
  • Проголосовать: не нравится