Новогоднее хабра-соревнование по программированию-2013 (C++)

Все мы слышали поговорку: как новый год встретишь — так его и проведешь. Оливье в сторону!

Рассчитывать на 5 часов адского программирования в праздник было бы негуманно, потому задача всего одна и она весьма лапидарна:

Программа должна прочитать из стандартного потока ввода целое число N (от 1 до 230), и напечатать сумму простых чисел меньших либо равных N.

Побеждает тот, кто напишет самое быстрое решение, проходящее все тесты (хотя-бы один неправильный ответ — и решение отклоняется). Скорость решения оценивается на тестах в районе верхней границы допустимого диапазона N (но не ровно 230).

Победитель получает всеобщее признание, сотни кармы и приятное чувство что он порвал всех на Хабре. Долгие годы молодые поколения разработчиков будут восхищаться его кодом, а девушки — чепчики в воздух бросать. По меньшей мере первые 4 read-only пользователя будут приглашены на Хабр.

Ограничения:

  1. Размер файла с решением — не более 1024 байт без учета первой строки с комментарием
    (краткость — сестра таланта)
  2. Только один язык программирования — C++ в исполнении clang 3.1, только стандартные библиотеки.
    Много кода писать тут не придется, так что даже если С++ не ваш основной язык — в нем легко будет разобраться на уровне достаточном для решения задачи.
  3. Тесты будут проводиться на 64-х битном Linux-е.
    Можно использовать 4 ядра процессора (i7-3820) и не более 30 Гб памяти.
  4. Допустимое время работы на каждый тест — не более 60 секунд.
  5. Принимается только первое решение от каждого участника. Будьте внимательны и не торопитесь.

Оформление решения, сроки и куда слать
Решения принимаются до 23:59 (время Московское) 1-го Января 2013-го года по адресу contest@14.by, файл с решением должен быть прикреплен к письму — не нужно вставлять код в само письмо!

В первой строке решения должен быть комментарий вида:

//@BarsMonster 

Где BarsMonster — имя вашего пользователя на HabraHabr (участвовать могут и read-only пользователи, регистрируйтесь)

Результаты и решения будут опубликованы на Хабре — по возможности не позднее 2-го Января.

Пример решения: (немного не успевает по времени, 242 байта)

//@BarsMonster #include<iostream> using namespace std;  int main() {   __int64_t n, sum=0;   cin>>n;   for(__int64_t i=2;i<=n;i++)   {     for(__int64_t j=2;j<i;j++)       if(i%j==0)goto next;     sum+=i; next:;   }   cout << sum << endl; }

Пример работы:

test@lbox2:~$ ./a.out 10 17  test@lbox2:~$ time ./a.out 100000 454396537  real    0m7.073s user    0m4.693s sys     0m0.000s

ссылка на оригинал статьи http://habrahabr.ru/post/164515/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *