Пришло время восстановить потерянный вклад.
И ещё один финалист RCC сказал мне что в 5 утра у него бывают сильные тормоза. У нас есть шанс его порвать!
Соревнование начнётся в 5 утра по Москве
Да прибудет с нами Сила!
№ | Пользователь | Рейтинг |
---|---|---|
1 | tourist | 3993 |
2 | jiangly | 3743 |
3 | orzdevinwang | 3707 |
4 | Radewoosh | 3627 |
5 | jqdai0815 | 3620 |
6 | Benq | 3564 |
7 | Kevin114514 | 3443 |
8 | ksun48 | 3434 |
9 | Rewinding | 3397 |
10 | Um_nik | 3396 |
Страны | Города | Организации | Всё → |
№ | Пользователь | Вклад |
---|---|---|
1 | cry | 167 |
2 | Um_nik | 163 |
3 | maomao90 | 162 |
3 | atcoder_official | 162 |
5 | adamant | 159 |
6 | -is-this-fft- | 158 |
7 | awoo | 155 |
8 | TheScrasse | 154 |
9 | Dominater069 | 153 |
10 | nor | 152 |
Пришло время восстановить потерянный вклад.
И ещё один финалист RCC сказал мне что в 5 утра у него бывают сильные тормоза. У нас есть шанс его порвать!
Соревнование начнётся в 5 утра по Москве
Да прибудет с нами Сила!
Название |
---|
Вместо небольшого плюса и хорошего настроения - опять 0 баллов и обвал в яму 1800-.
А все из-за 1<<q в 250.
Вместо 1ll<<q
Компилю так:
"C:\Program Files\CodeBlocks\MinGW\bin\g++.exe" -Werror main.cpp -o main.exe
Скармливаю код, который точно должен вызывать варнинги. А он компилится совершенно молча.
Как правильно делать?
Пробовал, ничего не меняется.
Такая строка:
"C:\Program Files\CodeBlocks\MinGW\bin\g++.exe" -Wall -Werror main.cpp -o
Можно ли посмотреть сам код и версию компилятора?
Код первоначально был такой:
#include <iostream>
#include <fstream>
int main()
{
double d = 88.88;
int x = d;
long long a = 15455455454545LL;
int p = a;
std::cout << x+p;
}
с опасным приведением типов.
Только что выяснил, что использование неинициализированной переменной он все-таки палит.
Хочу чтоб плохое неявное приведение тоже палил.
Может gcc вообще такое опасным не считает? Не дай бог.
Проверил, при компиляции такого кода в арене варнинги есть.
=============================================
http://pastebin.com/LqD105Dk
=============================================
Большое спасибо.
=======================================
Небольшое продолжнение истории.
Нужно мне все это было для написания кода в KawigiEdit.
Добавив нужные флаги в строку компиляции кавиги, я с радостью обнаружил, что теперь не компилится стандартный код тестирования.
Выяснилось, что там переменная time объявлена как int, и ей бессовестно присваиваются дабловские значения.
Лечится это добавлением строчки
#pragma GCC diagnostic ignored "-Wconversion"
сразу после моего кода.
Project -> Properties -> C/C++ -> Treat Warnings As Errors -> Yes.
Думаю, это очень полезно.
Например, вот цитата отсюда про 8086 и 80386:
The shift is repeated the number of times indicated by the second operand, which is either an immediate number or the contents of the CL register. To reduce the maximum execution time, the 80386 does not allow shift counts greater than 31. If a shift count greater than 31 is attempted, only the bottom five bits of the shift count are used. (The 8086 uses all eight bits of the shift count.)
The results are undefined if the right operand of a shift expression is negative or if the right operand is greater than or equal to the number of bits in the (promoted) left operand.
чтобы не гонять массивы, все длины (до 6 чисел 0-50) запихиваются в один long.
чтобы отдельно битовую маску не тащить, если строка повстречалась хоть раз, ее префикс фиксируется на максимуме.