… это не g++, это minGW.
MinGW (англ. Minimalist GNU for Windows), ранее mingw32, — нативный программный порт GNU Compiler Collection (GCC) под Microsoft Windows, вместе с набором свободно распространяемых библиотек импорта и заголовочных файлов для Windows API. (Википедия).
Я плохо понимаю, как можно портировать на другую платформу приложение с открытым кодом, при этом наделать кучу ошибок, которые, казалось бы, случайно не сделаешь, при этом стать популярным. Но вот как-то так и вышло.
Вот, например, что вас может ждать, если вы будете использовать компилятор, который на этом сайте гордо зовется g++. Попробуем запустить вот такой код:
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <iomanip>
using namespace std;
bool fail1=0, fail2=0;
bool lsw0(int a, int b) {
// В исходном массиве нет нулей,
// компаратор не может запуститься от нулевого аргумента
if (a==0 || b==0) if (!fail1) {fail1 = 1; cout << "Fail #1" << endl;}
// Арктангенс от положительного числа и нуля согласно man pages
// равен pi/2 независимо от первого аргумента
if (atan2(a,0) < atan2(b,0)) if (!fail2) {fail2 = 1; cout << "Fail #2" << endl;}
// Это отношение транзитивно, если арктангенс зависит только от входных данных
return atan2(max(a,1),0) < atan2(max(b,1),0);
}
int main () {
#ifdef __MINGW32__
cout << "I'm running on MinGW 32" << endl;
#endif
vector<int> perm;
for (int j=1;j<250;j++) {
perm.push_back(j);
}
sort(perm.begin(),perm.end(),lsw0);
}
На нормальных компиляторах этот код отработает без ошибок и ничего не выведет на экран. Но не на MinGW! Фейл первый: если запустить сортировку сортировать массив (1,2,…,249), может ли компаратор запуститься от нулевых аргументов? Как правило, функцию сортировки совершенно не волнует отношение порядка для элементов вне массива. Но MinGW оказался очень любопытным компилятором и таки заглянул туда. Фейл второй: как вы думаете, что больше: угол от OX до вектора (0;1) или угол от OX до вектора (0,2). Вот MinGW искренне думает, что они вполне себе могут отличаться. Ну и наконец, пишем более-менее стандартный компаратор, который отработает верно независимо от реализации atan2, лишь бы сам atan2 не рухнул. Но и здесь нас ждет провал, сортировка падает в RE.
Вывод: если вы не желаете экстремального поиска багов компилятора во время контеста, используйте компилятор Visual C++. Также, наверное, стоит сменить название компилятора в системе с g++ на MinGW, чтобы новички не удивлялись, почему в системе код падает, а у них на локальном компьютере все работает.
UPD. SkyHawk подсказывает, что g++ может вызывать fail #1, если компаратор не является strict weak ordering. Однако, MinGW умеет так делать даже при верном компараторе.
UPD2. Делаю вывод, что все эти фейлы порождаются одной и той же ошибкой: в MinGW strict weak ordering не выполняется даже для double.
UPD3. Ссылка от DAle про причины подобных ошибок при операциях с плавающей точкой.
Всем привет!
Вот уже третью зиму я приезжаю в Вологду на каникулы и провожу олимпиаду для местных школьников. В этот раз олимпиада проходит в рамках Северного математического турнира, который проходит здесь же, но по олимпиадной математике. Поэтому, в этот раз в олимпиаде участвуют школьники не только из Вологды.
Трансляция этой олимпиады пройдет на Codeforces::Тренировках ровно в это же время — во вторник, 31 января в 15:00 по Московскому времени (время в других регионах). Олимпиада будет проводиться по правилам ACM, но всего 3 часа. Т.к. я заранее не знал уровень участников, я постарался сделать олимпиаду интересной как для новичков, которые знают только основы одного из языков программирования, так и для более опытных олимпиадников, которые получили бы примерно синий или даже фиолетовый рейтинг на Codeforces. Т.к. олимпиаду готовлю я один в течение недели, глюки вполне возможны, прошу отнестись с пониманием.
Удачи всем, кто решит участвовать.
Алексей freopen Золотов
UPD. Если кому-то интересно, что происходит, примерно в 0:50 по времени контеста пропали все invokeры, которые проверяют решение. Я не могу что-то поправить и не могу даже узнать, почему это произошло. Надеюсь, что скоро починят. Простите за испорченный вечер и пропущенный SRM.
UPD2. Ссылка на разбор задач олимпиады. Еще более простое решение G.
UPD3. Поздравим sankear, который примерно за час решил все задачи олимпиады.
Завтра, 26 июля в 15:00 по Москве (время в других регионах), состоится TopCoder Single Round Match 513.
Очередной раунд состоится в субботу в 20:00 по московскому времени (время в других поясах). К раунду будут допущены лучшие 350 участников второго раунда, в четвертый раунд пройдут лучшие 150 участников третьего раунда.
Dear Webmaster,
I recently came across codeforces.ru through search and really like it. I was just wondering if you would like to exchange links with me?
You may be aware that exchanging links would be mutually beneficial and also very helpful in increasing traffic or visitors for both yours and my websites. If you are interested in exchanging links, please feel free to contact me at your earliest convenience and I will send you more details.
Please let me know if you have any questions or comments.
Best regards,
Karina SextonХм, похоже, автор счел меня автором сайта codeforces. Неожиданно.
В субботу в 18:00 по московскому времени пройдет третий онлайн раунд Google Code Jam (время начала в других регионах). Длительность тура - 2,5 часа. Лучшие 25 участников будут приглашены на онсайт в Токио.
Google Code Jam site
"...сюда в двенадцать часов новогодней ночи, прорвавшись через пургу, пришли люди, которым было интереснее доводить до конца или начинать сызнова какое-нибудь полезное дело, чем глушить себя водкой, бессмысленно дрыгать ногами, играть в фанты и заниматься флиртом разных степеней легкости... Они были магами потому, что очень много знали, так много, что количество перешло у них наконец в качество, и они стали с миром в другие отношения, нежели обычные люди".
А. и Б. Стругацкие.
«В наше время считается общепризнанным,
что из всего, так или иначе касающегося искусства,
ничто более не может считаться общепризнаным»
Теодор Адорно
Он пока еще не проверен уже проверен и работает с точностью до скорости ввода. Задача: отвечать на запросы: ? строка - есть ли такая подстрока в тексте, A строка - добавить строку в текст (приписать в конец). Публикую код в том виде, в котором мне его удобно отлаживать. Да, я разбираюсь в этом коде, а если наставить переносов, я разбираться в нем перестану. Если расставить переносы, получится около 35-40 строчек, что много, т.к. я не все фишки вспомнил. Может вспомню и добавлю еще. А теперь, собственно, сам код.
КОД УККОНЕНА (с комментариями)
Поздравляю поиск по тегам с долгожданным возвращением на прежнее место. Ура.
P.S. Также не могу оставить без внимания возможность написать пост и не публиковать его.
Round 2 состоится 6 февраля в 00:00 по московскому времени. Сегодня утром мне пришло следующее письмо:
Congratulations on advancing to Online Round 2 of the Facebook Hacker Cup!
Online Round 2 will begin on February 5, 2011 at 21:00 UTC (February 5, 2011 at 1:00 PM PST) and end February 6, 2011 at 0:00 UTC (February 5, 2011 at 4:00 PM PST).
You can find the starting times for Online Round 2 around the world here.
Competitors will have three hours to solve the presented problem sets. The top-scoring 300 participants from Online Round 2 will receive an official Hacker Cup t-shirt.
The top 25 scoring contestants from Online Round 2 will be flown to Facebook headquarters in Palo Alto, California, USA to compete in the Hacker Cup Finals. Finalists will be notified via email that they have advanced to the Final Round.
---Since you’ve made it this far, we know you’ve got skills. Send us your resume if you’re interested in working with us using the links below and we’ll fast track you through the interview process.
Software Engineer - Full Time (Employed/Not in school)
Currently employed or not in school/pursuing a degree.
Software Engineer - Full Time (Currently in school)
Currently in school/pursuing a degree and expecting to graduate soon.
Software Engineer - Internship/Co-op (Currently in school)
If you’re still studying at a university (undergrad, masters, Ph.D.) and not graduating in the next year, our internship program might be right for you! Our interns get to work on big projects, ship code and get paired with an engineering mentor for guidance and fast learning.
Happy Hacking!
The Facebook team
http://cforces.reformal.ru
P.S. Жаль, в топик нельзя встраивать js скрипты :)
- Участник года - Геннадий Короткевич (Беларусь, Гомель)
- Команда года - SPb IFMO #2: Ахи, Банных, Поромов (Россия, СПбГУ ИТМО)
- Тренер года - Михаил Мирзаянов (Россия, Саратовский ГУ)
- Прогресс года - Moscow IPT Waterogers: Гимадеев, Шишкин, Длугач (Россия, МФТИ)
- Дебют года - Nizhny Novgorod SU: Епифанов, Вадимов, Шмелев (Россия, Нижегородский ГУ)
- Турнир года - ACM ICPC World Finals 2010
- Проблемсет года - NEERC 2010
- Задача года - NEERC 2010, J и NEERC 2010, G
- Публикация года - http://codeforces.ru/blog/entry/894 (Александр Куприн, Россия, Орловский ГТУ)
- Проект года - CodeForces
- Персона года - Михаил Мирзаянов (Россия, Саратовский ГУ)
- Событие года - Открытие проекта CodeForces







