- PVSM.RU - https://www.pvsm.ru -

Результаты новогоднего Хабра-соревнования по программированию, анализ и обсуждение

Результаты новогоднего Хабра соревнования по программированию, анализ и обсуждениеЧестно говоря, я не ожидал такого количества решений: за 24 часа было прислано 265 решений, из которых после удаления повторных отправок осталось 183.

Из 183 решений у 11 был превышен допустимый размер решения, в 19 случаях — не удалось скомпилировать (об этих ошибках подробнее ниже). Далее 47 дали неправильные ответы на простых тестах (1..1000000), 8 не успели посчитать ответ за минуту (образец решения из условия задачи для 1млн работал 5 минут 36 секунд).

На сложных тестах — 5 решений выдали неверный ответ, и 12 — не уложились в одну минуту. 86 — успешно прошли все тесты.

Если кто потерял, вот топик о старте соревнования [1].

О тестах и тестировании

Тестировалось все банальными скриптами, самая трудоёмкая операция — сохранение руками решений из почты (и повторные имена файлов… 42 штуки main.cpp....). Это видимо один из тех случаев, когда написать web-приложение для приема решений быстрее, чем разгребать тонны почты.Результаты тестирования — складывались в MySQL, откуда строилась таблица результатов.

3 самых быстрых решения тестировались со 100-кратным повторением — чтобы получить более точное время работы (отличие от одиночного прогона в пределах 1%)

Простые тесты:

function do_test($input, $expected_output)
{
	global $task_id;
	exec("echo '$input' | Solutions2/bin/$task_id &2>1", $output);
	if(count($output)==0)return false;
	return(strcmp($output[0], $expected_output)==0);
}

$result = do_test("10","17") && do_test("1","0") && do_test("1000","76127") && do_test("100000","454396537") && do_test("1000000","37550402023");

Сложные тесты:
Оценивалось усредненное время выполнения (т.е. время выполнения для 4-х разных входных значений, деленное на 4).

$start_time = microtime (true);
//for($i=0;$i<100;$i++)
	$result = do_test("980000000","23783220704190493") && do_test("1051174931","27269025983026043") && do_test("891728152","19783994900202129") && do_test("761987760","14559966509022149");
$end_time = microtime (true);

Таблица результатов

Habraname Нужен ли инвайт Результат System ID
1 shadeware [2] Уже нет 0.035053772330284 сек. 48
2 mikhaelkh [3] Уже нет 0.039169362783432 сек. 41
3 Icemore [4] Уже нет 0.068273649811745 сек. 129
4 ripatti [5] Уже нет 0.11206769943237 сек. 8
5 kbxxi [6] Да 0.15401327610016 сек. 156
6 monoid [7] Да 0.22840601205826 сек. 69
7 Zver1992 [8] 0.23262423276901 сек. 133
8 Mrrl [9] 0.37099504470825 сек. 178
9 Staker [10] Да 0.66007524728775 сек. 171
10 SyDr [11] Да 0.93328875303268 сек. 78
11 vbarinov [12] Да 3.2648342847824 сек. 108
12 vanla [13] Да 3.3831697702408 сек. 19
13 MaSaK [14] Да 3.4151287674904 сек. 20
14 dark1ight [15] 3.5476635098457 сек. 36
15 udalov [16] Да 3.8905065059662 сек. 116
16 bklim [17] 4.3489827513695 сек. 149
17 cfighter [18] 4.4272682070732 сек. 11
18 VladVR [19] 4.7588297724724 сек. 89
19 borozdinKirill [20] 4.775633752346 сек. 109
20 ZhekSooN [21] 4.8941134810448 сек. 122
21 madkite [22] 4.9126330018044 сек. 114
22 akazakow [23] 5.208831012249 сек. 45
23 mingrief [24] 5.2523249983788 сек. 179
24 pasky [25] 5.9874464869499 сек. 5
25 ewnd9 [26] 6.024626493454 сек. 183
26 gnhdnb [27] 6.0333037376404 сек. 158
27 through_horizon [28] 6.2488570213318 сек. 21
28 kosmos89 [29] 6.2885909676552 сек. 126
29 Nickel [30] 6.36874127388 сек. 42
30 infsega [31] 6.4502172470093 сек. 33
31 shuternay [32] 6.4606020450592 сек. 6
32 smyatkin_maxim [33] 6.5664409995079 сек. 123
33 azhi [34] 6.9450110197067 сек. 145
34 Valmount [35] 7.2953402400017 сек. 147
35 Alick09 [36] 7.4088390469551 сек. 125
36 alexeibs [37] 7.6391640305519 сек. 177
37 DoctorStein [38] 7.6435596942902 сек. 128
38 Kenny_HORROR [39] 7.8451775312424 сек. 77
39 Ratio2 [40] 7.8529967665672 сек. 53
40 @No username specified 8.0461687445641 сек. 80
41 mobi [41] 8.129643201828 сек. 64
42 Lonsdaleite [42] 8.2785065174103 сек. 92
43 tiirz [43] 8.3757525086403 сек. 134
44 Goryn [44] 8.3831282258034 сек. 167
45 Leronxp [45] 8.5381667613983 сек. 93
46 singstio [46] 8.5835777521133 сек. 165
47 CTAKAH4uK [47] 8.7342492341995 сек. 173
48 XMypuK [48] 8.8221767544746 сек. 95
49 Edelweiss [49] 8.8413127660751 сек. 61
50 Jovfer [50] 9.6698319911957 сек. 174
51 crimaniak [51] 10.019654750824 сек. 113
52 luckman [52] 10.166677713394 сек. 46
53 ladilova [53] 10.607916533947 сек. 59
54 Gromilo [54] 11.256841778755 сек. 86
55 FreeCoder [55] 11.380919516087 сек. 44
56 awa [56] 11.482711791992 сек. 102
57 sprosin [57] 11.626729488373 сек. 76
58 BelerafonL [58] 11.740502238274 сек. 15
59 polar_winter [59] 11.798308491707 сек. 47
60 luckychess [60] 11.956114530563 сек. 143
61 darinflar [61] 11.991075217724 сек. 105
62 kreep [62] 12.082272768021 сек. 170
63 iqmaker [63] 12.346569001675 сек. 34
64 dima11221122 [64] 12.357870519161 сек. 54
65 kos66 [65] 12.412921786308 сек. 68
66 alex_r [66] 12.501110970974 сек. 31
67 dannk [67] 12.711302280426 сек. 138
68 andreybotanic [68] 12.847037494183 сек. 40
69 realsugar [69] 14.033301234245 сек. 10
70 kromych [70] 14.101772785187 сек. 25
71 iamnp [71] 14.298875749111 сек. 32
72 skripkakos [72] 14.305522501469 сек. 96
73 OnScript [73] 14.555817246437 сек. 142
74 aserty [74] 15.127694249153 сек. 175
75 ivanbl4 [75] 15.24883300066 сек. 148
76 kinbote [76] 16.56739872694 сек. 130
77 ryokuyou [77] 16.733837723732 сек. 106
78 quarck [78] 21.369844019413 сек. 157
79 sultanko [79] 21.440900743008 сек. 172
80 Yura1111 [80] 22.057671248913 сек. 30
81 Troyal [81] 22.184078454971 сек. 99
82 Izobara [82] 23.361551761627 сек. 16
83 PutPixel [83] 35.820213794708 сек. 180
84 CheshaNeko [84] 53.085104465485 сек. 120
85 fromnull [85] 53.490429997444 сек. 65
86 ronsenval [86] Неверный ответ на сложных тестах 14
87 undiabler [87] Неверный ответ на сложных тестах 26
88 MrDindows [88] Неверный ответ на сложных тестах 52
89 kladov [89] Неверный ответ на сложных тестах 66
90 Andrew146 [90] Неверный ответ на сложных тестах 127
91 vaux [91] Превышено допустимое время на сложных тестах 22
92 marsencpp [92] Превышено допустимое время на сложных тестах 27
93 phrk [93] Превышено допустимое время на сложных тестах 43
94 burtsev [94] Превышено допустимое время на сложных тестах 55
95 yooll [95] Превышено допустимое время на сложных тестах 58
96 DarkContact [96] Превышено допустимое время на сложных тестах 70
97 drongosar [97] Превышено допустимое время на сложных тестах 87
98 alexvab [98] Превышено допустимое время на сложных тестах 90
99 MrKonshyn [99] Превышено допустимое время на сложных тестах 91
100 appplemac [100] Превышено допустимое время на сложных тестах 112
101 msn92 [101] Превышено допустимое время на сложных тестах 136
102 ikalnitsky [102] Превышено допустимое время на сложных тестах 152
103 0Chekhov0 [103] Неверный ответ на простых тестах 1
104 savik1 [104] Неверный ответ на простых тестах 2
105 zenden2k [105] Неверный ответ на простых тестах 12
106 alexaol [106] Неверный ответ на простых тестах 17
107 Avitella [107] Неверный ответ на простых тестах 18
108 yrik04 [108] Неверный ответ на простых тестах 24
109 topz [109] Неверный ответ на простых тестах 35
110 drozdVadym [110] Неверный ответ на простых тестах 37
111 anton280 [111] Неверный ответ на простых тестах 39
112 ehead01 [112] Неверный ответ на простых тестах 49
113 8086 [113] Неверный ответ на простых тестах 50
114 DIMKAAAAA [114] Неверный ответ на простых тестах 57
115 mike_4d [115] Неверный ответ на простых тестах 60
116 alineman [116] Неверный ответ на простых тестах 74
117 pavor84 [117] Неверный ответ на простых тестах 75
118 denzp [118] Неверный ответ на простых тестах 79
119 RamTararam [119] Неверный ответ на простых тестах 81
120 DezzK [120] Неверный ответ на простых тестах 82
121 frozendog [121] Неверный ответ на простых тестах 83
122 sasha237 [122] Неверный ответ на простых тестах 98
123 aX1v [123] Неверный ответ на простых тестах 103
124 rutigl [124] Неверный ответ на простых тестах 104
125 Joric [125] Неверный ответ на простых тестах 107
126 LibertyPaul [126] Неверный ответ на простых тестах 110
127 volokitinss [127] Неверный ответ на простых тестах 111
128 Formicidae [128] Неверный ответ на простых тестах 115
129 fao [129] Неверный ответ на простых тестах 117
130 vkm [130] Неверный ответ на простых тестах 124
131 kleninz [131] Неверный ответ на простых тестах 131
132 knstqq [132] Неверный ответ на простых тестах 135
133 ryokuyou [77] Неверный ответ на простых тестах 139
134 morphing [133] Неверный ответ на простых тестах 140
135 Vaddddd [134] Неверный ответ на простых тестах 144
136 ancalled [135] Неверный ответ на простых тестах 150
137 fasterthanlight [136] Неверный ответ на простых тестах 154
138 sinc [137] Неверный ответ на простых тестах 155
139 Satayev [138] Неверный ответ на простых тестах 159
140 eversyt [139] Неверный ответ на простых тестах 162
141 zyss [140] Неверный ответ на простых тестах 163
142 smile616 [141] Неверный ответ на простых тестах 166
143 Moress [142] Неверный ответ на простых тестах 169
144 zzzeeerrr0 [143] Неверный ответ на простых тестах 176
145 kilotaras [144] Неверный ответ на простых тестах 182
146 I_AM_FAKE [145] Превышено допустимое время на простых тестах 7
147 Aksiom [146] Превышено допустимое время на простых тестах 28
148 WarAngel_alk [147] Превышено допустимое время на простых тестах 63
149 skovpen [148] Превышено допустимое время на простых тестах 132
150 safinaskar [149] Превышено допустимое время на простых тестах 160
151 @No username specified Превышено допустимое время на простых тестах 168
152 jit_md [150] Превышено допустимое время на простых тестах 181
153 mrigi [151] Попытка работать с отсутствующей сетью 146
154 Tweekaz [152] Ошибка компиляции 3
155 @No username specified Ошибка компиляции 4
156 Thunderbird [153] Ошибка компиляции 9
157 shock_one [154] Ошибка компиляции 13
158 shy [155] Ошибка компиляции 23
159 Dgut [156] Ошибка компиляции 38
160 ShouldNotSeeMe [157] Ошибка компиляции 56
161 therussianphysicist [158] Ошибка компиляции 62
162 aamuvirkku [159] Ошибка компиляции 84
163 IntegralUnderground [160] Ошибка компиляции 85
164 0leksandr [161] Ошибка компиляции 88
165 ipoder [162] Ошибка компиляции 94
166 IharBury [163] Ошибка компиляции 97
167 xtern [164] Ошибка компиляции 100
168 KycokCo6aku [165] Ошибка компиляции 101
169 gridem [166] Ошибка компиляции 118
170 minc2319 [167] Ошибка компиляции 141
171 okneigres [168] Ошибка компиляции 151
172 antidotcb [169] Ошибка компиляции 164
173 merkius [170] Превышен допустимый размер файла 71
174 iTwin [171] Превышен допустимый размер файла 29
175 bstructure [172] Превышен допустимый размер файла 153
176 fsv [173] Превышен допустимый размер файла 51
177 411 [174] Превышен допустимый размер файла 72
178 pleha [175] Превышен допустимый размер файла 67
179 staricam [176] Превышен допустимый размер файла 73
180 chipa [177] Превышен допустимый размер файла 119
181 dosefose [178] Превышен допустимый размер файла 121
182 SergeySib [179] Превышен допустимый размер файла 161
183 Ptax [180] Превышен допустимый размер файла 137

Об ошибках

Писали для MS VC: __int64 вместо long long или __int64_t, не подключен math.h, использование отсутствующего stdafx.h.
Писали для Windows: Math.h<>math.h
Bleeding-edge C++11 фичи: К сожалению, корректный код не всегда компилируется. У clang есть проблемы с C++11 многопоточностью (компилятор не может скомпилировать стандартную библиотеку, баг известен — я пробовал накатить патч — но не помогло). Если это не протестировать до отправки на целевом компиляторе — то проблему никак не обнаружить.
Синтаксические ошибки: Банальная внимательность — подозреваю отправку не сохраненного файла.
Непортируемый на 64-bit код: Попытки неявно привести указатель к int, и обратно.
memset: undeclared identifier 'memset'; did you mean 'wmemset'? Находилось онлайн-тестом на сайте llvm. Самая популярная ошибка.
Segmentation fault: Половина неверных ответов на коротких тестах — это segfault-ы и краши.

Увидеть свои результаты компиляции можно тут [181] (смотреть по System ID)

Решения

Изначально я хотел рассказать и об алгоритмах решения — но сейчас я вижу, что понятия не имею, как работают первые 2 места, потому лучше нам подождать авторов :-) Тем не менее, стоит заметить, что использование потоков не является необходимым условием для победы.

Shadeware, победитель

shadeware [2] У вас ничего не глючит, это компилируется.

//@shadeware
#include <cstdio>
#include <vector>
#include <cmath>
unsigned i,n,Q,j,L;long long u[66],A;int main(){for(;i<448;i++)u[i/7+2]=u[i/7+2]*96+"+.Uy[e^4MAqc>,3Vq8a}n3-teC`p2r/)Fl[2Z)|>Ke2O~7<Co2:Q]dpI23fM5~22'X S'}2"z;})81lu^+vx1s sc[U1g%Wzq+1s3 ?1[1HQoI$^1TH2EaX1cEzV,Z1CHMY7o1DHmqPA1D#4oe]1F&|'F^1R`5'k)0{z2\Oc1<T/G)x10BVH)~1B,ZzW:1)>FZ%$1+[%c"<0dAd/tP1->"0M!1;JwZ6!1*%j_y00V6$w!u10I dHR1PXF]r20!?Xhxw1?nbdEr0e-/ZE_0s:6:z.0[}+qG51<y9WfF0.^#nCQ0s)I(d/0XfrAQB10^,7e?0^X'W4 13M.MfL0"
"5Q2Oz50fxnC)E0V@NGo+0=Z?sS/0I_*[l0\W)O u1pw[AYJ/A?Xk;g0rbiYbu1*{Pj>f0'"aEs60OP;ZHs0zsjvXg0:~BPSu/aWY+&F1_aM,<q"[i]-32;for(i=0;i<64;i++)u[i+2]+=2*u[i+1]-u[i];scanf("%u",&n);Q=sqrt(n)+1e-7,L=n>>24<<24;A=u[(n>>24)+1]+2*!L*!!~-n;std::vector<bool>S(Q/2+1),B(n-L+2);B[1]=!L;for(i=3;i<=Q;i+=2)if(!S[i/2]){for(j=3*i;j<=Q;j+=2*i)S[j/2]=1;for(j=L?(L+i-1)/i*i:2*i;j<=n;j+=i)B[j-L]=1;}for(i=1;i+L<=n;i+=2)B[i]?0:A+=i+L;printf("%llun",A);} 
Mikhaelkh, 2-е место

mikhaelkh [3] Кодировка русского где-то похоже побилась, и компилятор на неё ругался — но чудом все скомпилировалось.

//@mikhaelkh
#include <cstdio>
#include <bitset>
unsigned char s[]=" 3ћfСЫБ b”Ђ)Cр ®—іЈ€Я $9шэD » $ѕ|Іш®† %ЃЉЃмF© &_яВГЕЕ 'Y¶FьВµ (nsџИp± )ќлznQ2 *иSР—ж) ,oшtе\v -пW0BC† /«Ю#™)ґ 1‚ьј”8P 3sю[Y6i 5.qЛ.“ 7¤zMЃшj 9г—‹XyЇ <_‰­XжЅ >ТOh«€Y AЃМ“«n® DKr]µrЩ G.?“нU® J*Ј»‚­Џ M@˜Eп†Ь PpYґпHј S№pvdјя W>дGpІш ZєQЦаЋ~ ^qяmty= bC†,щnт f.d“¤ ¤ j1Ж [|Ј nN№BўЮ: r…ЄG­рр vФiчwЁ{ {_Лз}Lh б*sЁЭ# „ћoї‹УE ‰to]¶е~ Ћd*4:иХ “kѕK8ћш ˜Њ~ќ˜QЄ ќЕЛ7д6« Ј;Ёл0ўь Ё§Iвc§б ®ObЗюЏP імЏxь>† №Е›»ЯPo ї·NцбЬ† ЕБ1ґgп& ЛгlъІcѓ ТAdЎ“[$ Ш–Й:ілЧ Я%юі±Ю1 е«_7бќЌ мlчnєСџ уF”ЭDРЭ ъ8ћуcћЖ $$CМжМMЕ $+gDbцPр $2ЎЧтУ‡E $9цА®П†Ы ";
enum{S=1<<14,N=1<<23};
long long a[65],res;
std::bitset<S> u;
std::bitset<N> v;
int n,r,x,i,j;
int main() {
	scanf("%d",&n);
	for (i=1;i<65;++i)
		for (++j;s[j]>32;++j)
			a[i]=221*a[i]+s[j]-35;
	*a=2,res=a[j=n/2/N],x=j*2*N,v[0]=!j;
	for (i=3;i<S+S;i+=2)
		if (!u[i/2]) {
			for (j=i*i/2;j<S;j+=i)u[j]=1;
			for (j=(x?((r=i-x%i)&1?r:r+i):i*i)/2;j<N;j+=i)v[j]=1;
		}
	for(i=1;i<=n-x;i+=2)
		if(!v[i/2])res+=x+i;
	printf("%lldn", n>1?res:0);
}
Icemore, 3-е место, самое быстрое многопоточное решение

Icemore [4]


//@Icemore
#include<iostream>
#include<cmath>
#include<memory.h>
#include<pthread.h>
#define lng long long
const int T=4,Q=33000,S=100000;
bool np[Q],b[T][S];
int p[Q],c,B,s,e;
lng A[T],R,P[]={0,1906816620981654LL,7357074544482779LL,16217881619242062LL,28422918403819825LL};
void* f(void*_){
	long id=(long)_;
	int C=(e/S-B+1)/T,q,M,i,j,k;
	M=(id==T-1)?(e/S+1):(id+1)*C+B;
	for(k=id*C+B;k<M;++k){
		memset(b[id],0,sizeof(bool)*S);q=k*S;
		for(i=0;i<c;++i){
			j=(q+p[i]-1)/p[i];j=(j>1?j:2)*p[i]-q;
			for(;j<S;j+=p[i])b[id][j]=1;
		}
		if(!k)b[id][0]=b[id][1]=1;
		for(i=std::max(0,s-q);i<S&&q+i<=e;++i)if(!b[id][i])A[id]+=q+i;
	}
	return 0;
}
int main(){
	int n,i,q,j;
	std::cin>>n;
	i=(n-1)/(1<<28);s=i*(1<<28)+2;e=(i+1)*(1<<28);
	if(n-s-1<e-n)R=P[i],e=n;else s=n+1,R=-P[i+1];
	B=s/S;q=(int)sqrt(e+.0);p[c++]=2;
	for(i=3;i<=q;i+=2)if(!np[i])for(j=i*i,p[c++]=i;j<=q;j+=i)np[j]=1;
 	pthread_t t[T];
	for(i=0;i<T;++i)pthread_create(t+i,0,f,(void*)(i));
	for(i=0;i<T;++i)pthread_join(t[i],0),R+=A[i];
	std::cout<<(R>0?R:-R);
} 
ripatti, 4-е место

ripatti [5]

//@ripatti
//идея - блочное решето с предпросчетом ответов для нескольких первых блоков
#include <iostream>
#include <memory.h>
#define S 150000
bool F[40000],B[S];
int P[10000],p=0;
long long pre[]={0,79835127420606,307011790722811,675490692294675,
1182357709860117,1825666731904492,2603717273255596,3515373254256955,
4559774703609068,5736228298250417,7043215380181465,8481171232603598,
10049045128993920,11745741297705187,13571569117886223,15525668198679060,
17608378509778587,19817357312226874,22154562782502270,24618987306923167,
27209541722648039};
int main(){
	int a,b,c,n,Z=(1<<15),Q=S*350;
	std::cin >> n;
	long long ans=pre[n/Q];
	for(a=2;a*a<Z;a++)if(!F[a])for(b=a*a;b<Z;b+=a)F[b]=true;
	for(a=2;a<Z;a++)if(!F[a])P[p++]=a;
	for(a=(n/Q)*Q;a<=n;a+=S){
		memset(B,0,sizeof B);
		for(b=0;b<p;b++)for(c=std::max(2,(a+P[b]-1)/P[b])*P[b]-a;c<S;c+=P[b])B[c]=true;
		if(a==0)B[0]=B[1]=true;
		for(b=0;b<S&&a+b<=n;b++)if(!B[b])ans+=a+b;
	}
	std::cout << ans;
	return 0;
}
kbxxi, 5-е место

kbxxi [6]

//@kbxxi
#include <iostream>
long long A[]={0,72619548630277,279209790387276,614333144695291,1075207199997334,1660170771905893,2367646772295462,
3196703482711201,4146437503168147,5215984059716389,6404774487532576,7711724083073573,9137303389808024,
10680189372387880,12340337443955708,14116726304047228,16010026481858292,18019518580817005,20143329357815162,
22383876593236984,24739512092254535,27209541722648039};
char S[50000100];
int p[50100],C,i,j,B=50000000,l,r;
long long R=0;   

int main(){    
	std::cin >> r;   
    for (i=2;i<=100000;i++)
    if (!S[i]){
        p[C++]=i;        
        for (j=2*i;j<=100000;j+=i)
            S[j]=1;
    } else S[i]=0;    
	l=r/B*B+1;
	for (i=1;p[i]*p[i]<=r;i++){
        int v=p[i],P=l/v*v;        
        if (P<l) P+=v;
		if (P==v) P+=v;
		if (!(P&1)) P+=v;
		v*=2;
        while (P<=r) S[P-l]=1,P+=v;        
    }
    for (i=l;i<=r;i+=2) if (!S[i-l] && i!=1) R+=i;
	if (l==1 && r>1) R+=2;
    std::cout<<A[r/B]+R;	
	return 0;
}

Singstio, самое короткое решение проходящее все тесты

singstio [46] 304 байта, никакого «сжатия»

//@singstio
#include<iostream>
#include<vector>
#include<math.h>
using namespace std;
int main()
{
  __int64_t n,sum=0,i,j,sn;
  cin>>n;
  sn=int(sqrt(n))+1;
  vector<bool> s(n+1,true);
  for(i=2;i<=sn;i++)
    if(s[i]){
      for(j=i*i;j<=n;j+=i)s[j]=false;}
  for(i=2;i<=n;i++)if(s[i])sum+=i;
  cout<<sum<<endl;
} 

Мораль

  • Сначала правильный алгоритм, потом многопоточность.
  • Перенос C++ программ на другую ОС, разрядность, компилятор — сложный и тернистый путь, тестировать на целевой платформе нужно обязательно. Вдвойне это касается bleeding-edge фич.
Стоит ли организовать следующее хабра-соревнование через 3-6 месяцев, только с онлайн-приемом решений и проверкой на компилируемость не отходя от кассы?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите [182], пожалуйста.

Проголосовало 39 человек. Воздержалось 6 человек.

Автор: BarsMonster

Источник [183]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/algoritmy/23949

Ссылки в тексте:

[1] топик о старте соревнования: http://habrahabr.ru/post/164515/

[2] shadeware: http://habrahabr.ru/users/shadeware/

[3] mikhaelkh: http://habrahabr.ru/users/mikhaelkh/

[4] Icemore: http://habrahabr.ru/users/icemore/

[5] ripatti: http://habrahabr.ru/users/ripatti/

[6] kbxxi: http://habrahabr.ru/users/kbxxi/

[7] monoid: http://habrahabr.ru/users/monoid/

[8] Zver1992: http://habrahabr.ru/users/zver1992/

[9] Mrrl: http://habrahabr.ru/users/mrrl/

[10] Staker: http://habrahabr.ru/users/staker/

[11] SyDr: http://habrahabr.ru/users/sydr/

[12] vbarinov: http://habrahabr.ru/users/vbarinov/

[13] vanla: http://habrahabr.ru/users/vanla/

[14] MaSaK: http://habrahabr.ru/users/masak/

[15] dark1ight: http://habrahabr.ru/users/dark1ight/

[16] udalov: http://habrahabr.ru/users/udalov/

[17] bklim: http://habrahabr.ru/users/bklim/

[18] cfighter: http://habrahabr.ru/users/cfighter/

[19] VladVR: http://habrahabr.ru/users/vladvr/

[20] borozdinKirill: http://habrahabr.ru/users/borozdinkirill/

[21] ZhekSooN: http://habrahabr.ru/users/zheksoon/

[22] madkite: http://habrahabr.ru/users/madkite/

[23] akazakow: http://habrahabr.ru/users/akazakow/

[24] mingrief: http://habrahabr.ru/users/mingrief/

[25] pasky: http://habrahabr.ru/users/pasky/

[26] ewnd9: http://habrahabr.ru/users/ewnd9/

[27] gnhdnb: http://habrahabr.ru/users/gnhdnb/

[28] through_horizon: http://habrahabr.ru/users/through_horizon/

[29] kosmos89: http://habrahabr.ru/users/kosmos89/

[30] Nickel: http://habrahabr.ru/users/nickel/

[31] infsega: http://habrahabr.ru/users/infsega/

[32] shuternay: http://habrahabr.ru/users/shuternay/

[33] smyatkin_maxim: http://habrahabr.ru/users/smyatkin_maxim/

[34] azhi: http://habrahabr.ru/users/azhi/

[35] Valmount: http://habrahabr.ru/users/valmount/

[36] Alick09: http://habrahabr.ru/users/alick09/

[37] alexeibs: http://habrahabr.ru/users/alexeibs/

[38] DoctorStein: http://habrahabr.ru/users/doctorstein/

[39] Kenny_HORROR: http://habrahabr.ru/users/kenny_horror/

[40] Ratio2: http://habrahabr.ru/users/ratio2/

[41] mobi: http://habrahabr.ru/users/mobi/

[42] Lonsdaleite: http://habrahabr.ru/users/lonsdaleite/

[43] tiirz: http://habrahabr.ru/users/tiirz/

[44] Goryn: http://habrahabr.ru/users/goryn/

[45] Leronxp: http://habrahabr.ru/users/leronxp/

[46] singstio: http://habrahabr.ru/users/singstio/

[47] CTAKAH4uK: http://habrahabr.ru/users/ctakah4uk/

[48] XMypuK: http://habrahabr.ru/users/xmypuk/

[49] Edelweiss: http://habrahabr.ru/users/edelweiss/

[50] Jovfer: http://habrahabr.ru/users/jovfer/

[51] crimaniak: http://habrahabr.ru/users/crimaniak/

[52] luckman: http://habrahabr.ru/users/luckman/

[53] ladilova: http://habrahabr.ru/users/ladilova/

[54] Gromilo: http://habrahabr.ru/users/gromilo/

[55] FreeCoder: http://habrahabr.ru/users/freecoder/

[56] awa: http://habrahabr.ru/users/awa/

[57] sprosin: http://habrahabr.ru/users/sprosin/

[58] BelerafonL: http://habrahabr.ru/users/belerafonl/

[59] polar_winter: http://habrahabr.ru/users/polar_winter/

[60] luckychess: http://habrahabr.ru/users/luckychess/

[61] darinflar: http://habrahabr.ru/users/darinflar/

[62] kreep: http://habrahabr.ru/users/kreep/

[63] iqmaker: http://habrahabr.ru/users/iqmaker/

[64] dima11221122: http://habrahabr.ru/users/dima11221122/

[65] kos66: http://habrahabr.ru/users/kos66/

[66] alex_r: http://habrahabr.ru/users/alex_r/

[67] dannk: http://habrahabr.ru/users/dannk/

[68] andreybotanic: http://habrahabr.ru/users/andreybotanic/

[69] realsugar: http://habrahabr.ru/users/realsugar/

[70] kromych: http://habrahabr.ru/users/kromych/

[71] iamnp: http://habrahabr.ru/users/iamnp/

[72] skripkakos: http://habrahabr.ru/users/skripkakos/

[73] OnScript: http://habrahabr.ru/users/onscript/

[74] aserty: http://habrahabr.ru/users/aserty/

[75] ivanbl4: http://habrahabr.ru/users/ivanbl4/

[76] kinbote: http://habrahabr.ru/users/kinbote/

[77] ryokuyou: http://habrahabr.ru/users/ryokuyou/

[78] quarck: http://habrahabr.ru/users/quarck/

[79] sultanko: http://habrahabr.ru/users/sultanko/

[80] Yura1111: http://habrahabr.ru/users/yura1111/

[81] Troyal: http://habrahabr.ru/users/troyal/

[82] Izobara: http://habrahabr.ru/users/izobara/

[83] PutPixel: http://habrahabr.ru/users/putpixel/

[84] CheshaNeko: http://habrahabr.ru/users/cheshaneko/

[85] fromnull: http://habrahabr.ru/users/fromnull/

[86] ronsenval: http://habrahabr.ru/users/ronsenval/

[87] undiabler: http://habrahabr.ru/users/undiabler/

[88] MrDindows: http://habrahabr.ru/users/mrdindows/

[89] kladov: http://habrahabr.ru/users/kladov/

[90] Andrew146: http://habrahabr.ru/users/andrew146/

[91] vaux: http://habrahabr.ru/users/vaux/

[92] marsencpp: http://habrahabr.ru/users/marsencpp/

[93] phrk: http://habrahabr.ru/users/phrk/

[94] burtsev: http://habrahabr.ru/users/burtsev/

[95] yooll: http://habrahabr.ru/users/yooll/

[96] DarkContact: http://habrahabr.ru/users/darkcontact/

[97] drongosar: http://habrahabr.ru/users/drongosar/

[98] alexvab: http://habrahabr.ru/users/alexvab/

[99] MrKonshyn: http://habrahabr.ru/users/mrkonshyn/

[100] appplemac: http://habrahabr.ru/users/appplemac/

[101] msn92: http://habrahabr.ru/users/msn92/

[102] ikalnitsky: http://habrahabr.ru/users/ikalnitsky/

[103] 0Chekhov0: http://habrahabr.ru/users/0chekhov0/

[104] savik1: http://habrahabr.ru/users/savik1/

[105] zenden2k: http://habrahabr.ru/users/zenden2k/

[106] alexaol: http://habrahabr.ru/users/alexaol/

[107] Avitella: http://habrahabr.ru/users/avitella/

[108] yrik04: http://habrahabr.ru/users/yrik04/

[109] topz: http://habrahabr.ru/users/topz/

[110] drozdVadym: http://habrahabr.ru/users/drozdvadym/

[111] anton280: http://habrahabr.ru/users/anton280/

[112] ehead01: http://habrahabr.ru/users/ehead01/

[113] 8086: http://habrahabr.ru/users/8086/

[114] DIMKAAAAA: http://habrahabr.ru/users/dimkaaaaa/

[115] mike_4d: http://habrahabr.ru/users/mike_4d/

[116] alineman: http://habrahabr.ru/users/alineman/

[117] pavor84: http://habrahabr.ru/users/pavor84/

[118] denzp: http://habrahabr.ru/users/denzp/

[119] RamTararam: http://habrahabr.ru/users/ramtararam/

[120] DezzK: http://habrahabr.ru/users/dezzk/

[121] frozendog: http://habrahabr.ru/users/frozendog/

[122] sasha237: http://habrahabr.ru/users/sasha237/

[123] aX1v: http://habrahabr.ru/users/ax1v/

[124] rutigl: http://habrahabr.ru/users/rutigl/

[125] Joric: http://habrahabr.ru/users/joric/

[126] LibertyPaul: http://habrahabr.ru/users/libertypaul/

[127] volokitinss: http://habrahabr.ru/users/volokitinss/

[128] Formicidae: http://habrahabr.ru/users/formicidae/

[129] fao: http://habrahabr.ru/users/fao/

[130] vkm: http://habrahabr.ru/users/vkm/

[131] kleninz: http://habrahabr.ru/users/kleninz/

[132] knstqq: http://habrahabr.ru/users/knstqq/

[133] morphing: http://habrahabr.ru/users/morphing/

[134] Vaddddd: http://habrahabr.ru/users/vaddddd/

[135] ancalled: http://habrahabr.ru/users/ancalled/

[136] fasterthanlight: http://habrahabr.ru/users/fasterthanlight/

[137] sinc: http://habrahabr.ru/users/sinc/

[138] Satayev: http://habrahabr.ru/users/satayev/

[139] eversyt: http://habrahabr.ru/users/eversyt/

[140] zyss: http://habrahabr.ru/users/zyss/

[141] smile616: http://habrahabr.ru/users/smile616/

[142] Moress: http://habrahabr.ru/users/moress/

[143] zzzeeerrr0: http://habrahabr.ru/users/zzzeeerrr0/

[144] kilotaras: http://habrahabr.ru/users/kilotaras/

[145] I_AM_FAKE: http://habrahabr.ru/users/i_am_fake/

[146] Aksiom: http://habrahabr.ru/users/aksiom/

[147] WarAngel_alk: http://habrahabr.ru/users/warangel_alk/

[148] skovpen: http://habrahabr.ru/users/skovpen/

[149] safinaskar: http://habrahabr.ru/users/safinaskar/

[150] jit_md: http://habrahabr.ru/users/jit_md/

[151] mrigi: http://habrahabr.ru/users/mrigi/

[152] Tweekaz: http://habrahabr.ru/users/tweekaz/

[153] Thunderbird: http://habrahabr.ru/users/thunderbird/

[154] shock_one: http://habrahabr.ru/users/shock_one/

[155] shy: http://habrahabr.ru/users/shy/

[156] Dgut: http://habrahabr.ru/users/dgut/

[157] ShouldNotSeeMe: http://habrahabr.ru/users/shouldnotseeme/

[158] therussianphysicist: http://habrahabr.ru/users/therussianphysicist/

[159] aamuvirkku: http://habrahabr.ru/users/aamuvirkku/

[160] IntegralUnderground: http://habrahabr.ru/users/integralunderground/

[161] 0leksandr: http://habrahabr.ru/users/0leksandr/

[162] ipoder: http://habrahabr.ru/users/ipoder/

[163] IharBury: http://habrahabr.ru/users/iharbury/

[164] xtern: http://habrahabr.ru/users/xtern/

[165] KycokCo6aku: http://habrahabr.ru/users/kycokco6aku/

[166] gridem: http://habrahabr.ru/users/gridem/

[167] minc2319: http://habrahabr.ru/users/minc2319/

[168] okneigres: http://habrahabr.ru/users/okneigres/

[169] antidotcb: http://habrahabr.ru/users/antidotcb/

[170] merkius: http://habrahabr.ru/users/merkius/

[171] iTwin: http://habrahabr.ru/users/itwin/

[172] bstructure: http://habrahabr.ru/users/bstructure/

[173] fsv: http://habrahabr.ru/users/fsv/

[174] 411: http://habrahabr.ru/users/411/

[175] pleha: http://habrahabr.ru/users/pleha/

[176] staricam: http://habrahabr.ru/users/staricam/

[177] chipa: http://habrahabr.ru/users/chipa/

[178] dosefose: http://habrahabr.ru/users/dosefose/

[179] SergeySib: http://habrahabr.ru/users/sergeysib/

[180] Ptax: http://habrahabr.ru/users/ptax/

[181] можно тут: http://3.14.by/files/compilation_results.zip

[182] Войдите: https://www.pvsm.ru/login/

[183] Источник: http://habrahabr.ru/post/164567/