Skip to content

Instantly share code, notes, and snippets.

@solson
Forked from anonymous/playground.rs
Created December 15, 2017 22:09
Show Gist options
  • Save solson/2b18364c5e2058b74aebdf5e9b49f69a to your computer and use it in GitHub Desktop.
Save solson/2b18364c5e2058b74aebdf5e9b49f69a to your computer and use it in GitHub Desktop.
Rust code shared from the playground
use std::collections::VecDeque;
const _INPUT: &str = "\
0 <-> 2
1 <-> 1
2 <-> 0, 3, 4
3 <-> 2, 4
4 <-> 2, 3, 6
5 <-> 6
6 <-> 4, 5\
";
const INPUT: &str = "\
0 <-> 780, 1330
1 <-> 264, 595, 1439
2 <-> 296, 531, 1440
3 <-> 207, 235, 1038
4 <-> 554, 1295
5 <-> 159, 568, 1381
6 <-> 1134
7 <-> 1472, 1977
8 <-> 704
9 <-> 783, 1082, 1795
10 <-> 46, 653, 958
11 <-> 55, 1931
12 <-> 12
13 <-> 537, 940
14 <-> 1066, 1411, 1997
15 <-> 1528
16 <-> 27
17 <-> 113, 370, 450, 982
18 <-> 571
19 <-> 1606
20 <-> 803
21 <-> 956
22 <-> 181, 1126, 1431, 1737
23 <-> 131, 162, 967, 1973
24 <-> 526, 1914
25 <-> 551, 1057
26 <-> 1162, 1922
27 <-> 16, 533, 1125
28 <-> 468, 902, 1159
29 <-> 29
30 <-> 749, 1079, 1684
31 <-> 1909, 1992
32 <-> 1666
33 <-> 426, 1662, 1883
34 <-> 109
35 <-> 307, 577, 727, 1763, 1948
36 <-> 578
37 <-> 92, 503, 1203, 1255
38 <-> 38, 471
39 <-> 615
40 <-> 584, 1787
41 <-> 591, 756
42 <-> 888
43 <-> 952
44 <-> 1029
45 <-> 45, 300, 596, 1393, 1486
46 <-> 10, 1887
47 <-> 592
48 <-> 108
49 <-> 1583
50 <-> 1200
51 <-> 51, 857
52 <-> 965
53 <-> 702, 1428
54 <-> 1525
55 <-> 11, 610
56 <-> 1703
57 <-> 1449
58 <-> 1097
59 <-> 1316, 1461, 1932
60 <-> 107, 1010, 1504, 1824, 1912
61 <-> 1677
62 <-> 691, 714, 1530
63 <-> 672, 1263, 1956
64 <-> 825, 1016, 1370
65 <-> 539, 1055, 1290
66 <-> 1287
67 <-> 338, 1195
68 <-> 108, 296, 1787, 1821
69 <-> 436, 1015, 1633
70 <-> 262, 407, 592, 1414
71 <-> 420, 797
72 <-> 1393
73 <-> 616, 993
74 <-> 168, 175
75 <-> 590, 1103
76 <-> 271
77 <-> 1309, 1496, 1627
78 <-> 569, 1888
79 <-> 1289, 1925
80 <-> 193, 993
81 <-> 500
82 <-> 1069
83 <-> 83, 1518
84 <-> 1465
85 <-> 1614
86 <-> 474, 749, 1286, 1678
87 <-> 160
88 <-> 1026, 1732
89 <-> 317, 422, 917
90 <-> 517, 1362
91 <-> 136
92 <-> 37, 703
93 <-> 1738, 1827
94 <-> 345, 907, 1180
95 <-> 95
96 <-> 406, 1086, 1258
97 <-> 97, 157
98 <-> 1002
99 <-> 109, 198, 654
100 <-> 555
101 <-> 101
102 <-> 939
103 <-> 616, 1266
104 <-> 1526
105 <-> 306, 1276, 1330
106 <-> 1395
107 <-> 60, 288, 1971
108 <-> 48, 68
109 <-> 34, 99, 578, 1042
110 <-> 906, 1567
111 <-> 917, 1347
112 <-> 1291, 1384, 1695, 1988
113 <-> 17, 1173
114 <-> 297, 1576
115 <-> 361
116 <-> 117, 1084
117 <-> 116, 164, 683, 1454
118 <-> 1956
119 <-> 1198
120 <-> 171, 416
121 <-> 1949
122 <-> 233, 770, 1012
123 <-> 801
124 <-> 1406
125 <-> 769
126 <-> 418, 1038, 1273
127 <-> 611, 1060, 1241
128 <-> 576, 665, 1568
129 <-> 862
130 <-> 1607, 1644
131 <-> 23, 812
132 <-> 1097
133 <-> 1403, 1992
134 <-> 232
135 <-> 959
136 <-> 91, 1354, 1868, 1932
137 <-> 766, 1049
138 <-> 138
139 <-> 139, 355
140 <-> 1858
141 <-> 703, 1319
142 <-> 424
143 <-> 869
144 <-> 231, 338
145 <-> 1163, 1345
146 <-> 431, 940, 1389
147 <-> 1282, 1784
148 <-> 218, 1137
149 <-> 378
150 <-> 257, 798
151 <-> 1603
152 <-> 152, 189, 1151
153 <-> 623, 1228
154 <-> 154
155 <-> 376, 808
156 <-> 1726
157 <-> 97
158 <-> 482
159 <-> 5
160 <-> 87, 504, 1775
161 <-> 873, 1047
162 <-> 23
163 <-> 291
164 <-> 117, 229, 371, 1427
165 <-> 487, 1683, 1844
166 <-> 508
167 <-> 278, 1228, 1453
168 <-> 74, 1210
169 <-> 396, 410, 1256
170 <-> 555, 1624
171 <-> 120, 340, 1713
172 <-> 1748
173 <-> 880, 1306
174 <-> 1052, 1697
175 <-> 74, 995
176 <-> 1421
177 <-> 551, 640
178 <-> 1611
179 <-> 1504
180 <-> 310, 1432, 1722
181 <-> 22
182 <-> 1175
183 <-> 1115
184 <-> 184
185 <-> 708
186 <-> 1130
187 <-> 944
188 <-> 451, 593
189 <-> 152
190 <-> 885, 1491
191 <-> 191
192 <-> 1751
193 <-> 80, 931
194 <-> 544, 826
195 <-> 1354
196 <-> 705
197 <-> 1646, 1693
198 <-> 99
199 <-> 1681, 1818
200 <-> 200
201 <-> 678, 691
202 <-> 1084
203 <-> 446, 1232
204 <-> 337, 826, 1919
205 <-> 440, 818
206 <-> 618, 898
207 <-> 3
208 <-> 208
209 <-> 574, 1760, 1774
210 <-> 960, 1315
211 <-> 525, 670
212 <-> 453, 1552
213 <-> 1164
214 <-> 893, 1597
215 <-> 386, 1412, 1752
216 <-> 1800
217 <-> 1103
218 <-> 148, 218
219 <-> 1135, 1216, 1404
220 <-> 1899
221 <-> 987, 1248
222 <-> 706, 1199, 1916
223 <-> 816, 1079, 1703
224 <-> 726
225 <-> 797
226 <-> 396, 1482
227 <-> 844
228 <-> 703, 972, 1275
229 <-> 164, 377, 662, 1048
230 <-> 230, 661
231 <-> 144, 1358
232 <-> 134, 793, 1433, 1730
233 <-> 122
234 <-> 882
235 <-> 3, 489
236 <-> 945, 1346
237 <-> 480
238 <-> 702
239 <-> 1008
240 <-> 1078
241 <-> 1103, 1844
242 <-> 666, 1299
243 <-> 1489
244 <-> 423, 827, 860, 868
245 <-> 1747
246 <-> 659, 1446
247 <-> 679
248 <-> 1467, 1942
249 <-> 1678
250 <-> 284, 1223
251 <-> 1513
252 <-> 1673
253 <-> 1084
254 <-> 747, 1705
255 <-> 255
256 <-> 390
257 <-> 150, 1439, 1804
258 <-> 1302, 1626
259 <-> 259, 1519
260 <-> 449
261 <-> 269, 641
262 <-> 70
263 <-> 1334, 1358
264 <-> 1, 1843
265 <-> 1316
266 <-> 1045, 1053, 1264
267 <-> 364, 1198
268 <-> 501, 594, 732, 1919
269 <-> 261, 681
270 <-> 670, 1283, 1531
271 <-> 76, 1817, 1858
272 <-> 625, 757, 1236, 1793
273 <-> 1255, 1539
274 <-> 442, 1406
275 <-> 706, 1760
276 <-> 841, 1553, 1764
277 <-> 1133
278 <-> 167, 908
279 <-> 1771
280 <-> 280, 1583
281 <-> 702
282 <-> 282, 1712, 1776
283 <-> 820, 981
284 <-> 250
285 <-> 680, 880, 1896
286 <-> 286, 489
287 <-> 608, 1204, 1423
288 <-> 107, 1353, 1729
289 <-> 289, 299
290 <-> 761, 1134
291 <-> 163, 801, 1435
292 <-> 1217, 1525
293 <-> 1206
294 <-> 797, 1124, 1371
295 <-> 335, 704
296 <-> 2, 68, 1516
297 <-> 114, 1036, 1987
298 <-> 298, 588, 1430
299 <-> 289
300 <-> 45, 1965
301 <-> 773, 1591
302 <-> 1122, 1341
303 <-> 450, 1786
304 <-> 304
305 <-> 724
306 <-> 105, 1861
307 <-> 35
308 <-> 308, 1015
309 <-> 930, 1011
310 <-> 180
311 <-> 1513
312 <-> 646
313 <-> 1381
314 <-> 511, 804, 1079
315 <-> 399
316 <-> 948, 1169
317 <-> 89, 725
318 <-> 318
319 <-> 319
320 <-> 787
321 <-> 1132
322 <-> 322
323 <-> 1376
324 <-> 1540
325 <-> 1448, 1944, 1995
326 <-> 1828
327 <-> 1886
328 <-> 639
329 <-> 831, 959
330 <-> 527
331 <-> 1399, 1535
332 <-> 1843
333 <-> 333, 522
334 <-> 1512
335 <-> 295, 885
336 <-> 1651
337 <-> 204, 1164, 1874
338 <-> 67, 144, 584, 621
339 <-> 1887
340 <-> 171, 1861
341 <-> 1555
342 <-> 507
343 <-> 1441
344 <-> 409, 527, 1364, 1756
345 <-> 94
346 <-> 357, 499
347 <-> 795, 1065, 1191
348 <-> 914, 1800, 1982
349 <-> 349
350 <-> 436
351 <-> 1472, 1514
352 <-> 375, 884
353 <-> 499, 567
354 <-> 1033, 1218
355 <-> 139
356 <-> 866
357 <-> 346, 1665
358 <-> 1225
359 <-> 359, 1429
360 <-> 1512
361 <-> 115, 920, 1975
362 <-> 507, 682, 1116, 1762
363 <-> 1583, 1737
364 <-> 267
365 <-> 1878, 1885
366 <-> 1060
367 <-> 421
368 <-> 1362
369 <-> 532, 1140
370 <-> 17, 1065, 1117
371 <-> 164
372 <-> 372
373 <-> 373
374 <-> 1050
375 <-> 352, 1311, 1446
376 <-> 155, 1928
377 <-> 229, 636
378 <-> 149, 1897
379 <-> 936
380 <-> 1193, 1963
381 <-> 1783
382 <-> 1900
383 <-> 383
384 <-> 1630
385 <-> 441
386 <-> 215
387 <-> 795, 946
388 <-> 1457
389 <-> 731, 1973
390 <-> 256, 1706, 1900
391 <-> 391
392 <-> 1400
393 <-> 818, 1244
394 <-> 394, 1881
395 <-> 395, 1656
396 <-> 169, 226
397 <-> 1790
398 <-> 1260
399 <-> 315, 399
400 <-> 1204
401 <-> 1606
402 <-> 1191, 1726, 1853
403 <-> 403
404 <-> 1470
405 <-> 1924
406 <-> 96, 413, 1201
407 <-> 70
408 <-> 1063, 1216, 1586
409 <-> 344, 409, 1625, 1803
410 <-> 169, 1732
411 <-> 1599
412 <-> 889, 1460
413 <-> 406, 761, 1918
414 <-> 661
415 <-> 442, 962, 1200
416 <-> 120, 503
417 <-> 446, 612, 1007
418 <-> 126, 797, 1478, 1857
419 <-> 1060, 1350, 1459, 1736
420 <-> 71, 978, 1215
421 <-> 367, 665, 1385, 1415
422 <-> 89, 679, 1418
423 <-> 244
424 <-> 142, 1813
425 <-> 627, 981
426 <-> 33
427 <-> 1172, 1495, 1740
428 <-> 1869
429 <-> 966, 986, 1162, 1658
430 <-> 1866
431 <-> 146, 1523, 1934
432 <-> 558, 811, 944
433 <-> 693, 1291
434 <-> 766
435 <-> 1784
436 <-> 69, 350, 1064
437 <-> 766, 817, 882, 1481
438 <-> 742, 1159
439 <-> 724, 1518
440 <-> 205
441 <-> 385, 1206
442 <-> 274, 415, 442, 821
443 <-> 1088, 1533
444 <-> 666, 1260
445 <-> 591, 1030, 1395, 1722
446 <-> 203, 417, 1278, 1494, 1507
447 <-> 447
448 <-> 1599, 1882
449 <-> 260, 1758
450 <-> 17, 303, 1970
451 <-> 188
452 <-> 658, 763, 769
453 <-> 212
454 <-> 605
455 <-> 478
456 <-> 720, 1139, 1546
457 <-> 598, 1127, 1496, 1518
458 <-> 635
459 <-> 1068
460 <-> 1080, 1088, 1857
461 <-> 739
462 <-> 1344
463 <-> 1775
464 <-> 593, 1957
465 <-> 703, 745, 1145
466 <-> 1550, 1980
467 <-> 467
468 <-> 28
469 <-> 1278
470 <-> 470
471 <-> 38, 996, 1626
472 <-> 1933
473 <-> 799
474 <-> 86, 696, 1228
475 <-> 491, 1250, 1739
476 <-> 726
477 <-> 1687
478 <-> 455, 834, 835, 1389, 1983
479 <-> 479
480 <-> 237, 576
481 <-> 791, 1370
482 <-> 158, 1365
483 <-> 761, 893
484 <-> 1192
485 <-> 1301
486 <-> 1431
487 <-> 165, 1119
488 <-> 789
489 <-> 235, 286
490 <-> 490
491 <-> 475, 1775
492 <-> 1280, 1758
493 <-> 1007, 1152
494 <-> 1747
495 <-> 495, 879
496 <-> 1219
497 <-> 643, 1118
498 <-> 1010, 1529
499 <-> 346, 353, 697, 1303
500 <-> 81, 1700
501 <-> 268
502 <-> 502
503 <-> 37, 416, 1121, 1740
504 <-> 160, 909
505 <-> 525, 1686, 1940
506 <-> 1292, 1380
507 <-> 342, 362, 969, 1674
508 <-> 166, 1233
509 <-> 1069
510 <-> 636
511 <-> 314, 1759
512 <-> 1218, 1726
513 <-> 1008, 1361, 1679
514 <-> 1280
515 <-> 1789
516 <-> 619, 1835
517 <-> 90, 1362, 1537
518 <-> 880
519 <-> 1329
520 <-> 1248, 1441
521 <-> 743, 1141, 1534, 1743
522 <-> 333, 689
523 <-> 1233
524 <-> 860
525 <-> 211, 505
526 <-> 24, 984, 1503
527 <-> 330, 344, 771, 1243
528 <-> 898
529 <-> 597
530 <-> 1220, 1282
531 <-> 2
532 <-> 369, 821, 1806, 1937
533 <-> 27, 1102
534 <-> 1643, 1870
535 <-> 569, 772
536 <-> 536
537 <-> 13
538 <-> 1060, 1710
539 <-> 65, 1002
540 <-> 833, 1021, 1301
541 <-> 1677
542 <-> 542
543 <-> 1242
544 <-> 194, 698, 716, 1895
545 <-> 1348, 1584
546 <-> 797, 1622
547 <-> 871, 1761
548 <-> 1666
549 <-> 1485
550 <-> 1363, 1587
551 <-> 25, 177, 645, 1311
552 <-> 1208
553 <-> 840
554 <-> 4, 1454
555 <-> 100, 170, 898, 1075, 1828, 1989
556 <-> 924, 1614
557 <-> 557
558 <-> 432, 558
559 <-> 1680
560 <-> 1667
561 <-> 760
562 <-> 1668, 1799
563 <-> 738
564 <-> 1062, 1142, 1313
565 <-> 750
566 <-> 1104, 1614
567 <-> 353, 744
568 <-> 5, 568, 1338
569 <-> 78, 535, 881
570 <-> 600, 1516
571 <-> 18, 1312, 1414, 1669
572 <-> 572, 1958
573 <-> 967, 1419
574 <-> 209
575 <-> 1013, 1087
576 <-> 128, 480
577 <-> 35, 577, 580
578 <-> 36, 109
579 <-> 1417
580 <-> 577, 601, 700
581 <-> 815, 1327, 1749
582 <-> 891, 1263
583 <-> 1652
584 <-> 40, 338
585 <-> 585
586 <-> 640, 688, 1258, 1331
587 <-> 1472
588 <-> 298
589 <-> 1170
590 <-> 75, 1054
591 <-> 41, 445
592 <-> 47, 70
593 <-> 188, 464, 1259, 1579
594 <-> 268, 1194
595 <-> 1, 1367, 1501
596 <-> 45
597 <-> 529, 626, 1237
598 <-> 457, 648, 699
599 <-> 1108, 1592
600 <-> 570, 789, 1672
601 <-> 580, 1298
602 <-> 861, 1394
603 <-> 1297, 1994
604 <-> 1136
605 <-> 454, 605
606 <-> 832, 1109
607 <-> 954, 1138
608 <-> 287, 1971
609 <-> 888
610 <-> 55, 1580
611 <-> 127, 710, 1087
612 <-> 417, 950, 1428, 1464
613 <-> 672, 1426
614 <-> 794, 1724
615 <-> 39, 848
616 <-> 73, 103, 616
617 <-> 726, 1026
618 <-> 206, 1676
619 <-> 516, 1204
620 <-> 925
621 <-> 338
622 <-> 989
623 <-> 153
624 <-> 824, 1566, 1966
625 <-> 272, 1326
626 <-> 597, 750
627 <-> 425
628 <-> 1181, 1541, 1704
629 <-> 1370, 1805
630 <-> 630, 763
631 <-> 1709
632 <-> 1315, 1848
633 <-> 1501
634 <-> 674, 871
635 <-> 458, 811
636 <-> 377, 510, 1488
637 <-> 1337
638 <-> 781
639 <-> 328, 1399
640 <-> 177, 586, 1202, 1332, 1847
641 <-> 261, 1942
642 <-> 819
643 <-> 497, 1089
644 <-> 1661
645 <-> 551
646 <-> 312, 938, 1642, 1764
647 <-> 1437
648 <-> 598
649 <-> 784, 1154, 1746
650 <-> 1207, 1268
651 <-> 1240, 1797
652 <-> 1254
653 <-> 10, 739, 764
654 <-> 99, 1759
655 <-> 895, 1784
656 <-> 656, 701, 738
657 <-> 1170
658 <-> 452
659 <-> 246
660 <-> 809
661 <-> 230, 414
662 <-> 229
663 <-> 1133, 1231
664 <-> 745, 820
665 <-> 128, 421
666 <-> 242, 444, 926
667 <-> 955, 1762
668 <-> 1843
669 <-> 1384, 1849
670 <-> 211, 270, 1836
671 <-> 1415
672 <-> 63, 613, 1864
673 <-> 964, 1973
674 <-> 634, 1479, 1554
675 <-> 1390
676 <-> 1468, 1855
677 <-> 1632
678 <-> 201, 1445
679 <-> 247, 422, 1401, 1484
680 <-> 285
681 <-> 269, 1115
682 <-> 362, 682
683 <-> 117, 1826
684 <-> 977, 1458
685 <-> 812
686 <-> 1214, 1690, 1886
687 <-> 1752
688 <-> 586
689 <-> 522
690 <-> 1077, 1454
691 <-> 62, 201, 815, 1019
692 <-> 1454
693 <-> 433, 941
694 <-> 852
695 <-> 695
696 <-> 474
697 <-> 499
698 <-> 544
699 <-> 598, 1448
700 <-> 580
701 <-> 656
702 <-> 53, 238, 281
703 <-> 92, 141, 228, 465, 1326
704 <-> 8, 295, 1939
705 <-> 196, 1099
706 <-> 222, 275, 885, 905, 1531
707 <-> 707, 1981
708 <-> 185, 708, 1182, 1891, 1999
709 <-> 1911
710 <-> 611
711 <-> 711, 1150
712 <-> 1833
713 <-> 713
714 <-> 62, 1011, 1096, 1666
715 <-> 1094
716 <-> 544, 992
717 <-> 1297
718 <-> 718, 1727
719 <-> 996
720 <-> 456, 1388, 1748
721 <-> 1331, 1458
722 <-> 1535
723 <-> 723
724 <-> 305, 439
725 <-> 317, 1854
726 <-> 224, 476, 617, 1123
727 <-> 35, 1249
728 <-> 1369
729 <-> 1537
730 <-> 730, 1212
731 <-> 389, 1815
732 <-> 268
733 <-> 1199
734 <-> 919
735 <-> 1627, 1694
736 <-> 1036, 1319
737 <-> 1345
738 <-> 563, 656
739 <-> 461, 653
740 <-> 1069
741 <-> 1436
742 <-> 438, 1879, 1895
743 <-> 521, 1657
744 <-> 567
745 <-> 465, 664
746 <-> 873, 998
747 <-> 254, 1380
748 <-> 1089, 1329
749 <-> 30, 86
750 <-> 565, 626
751 <-> 1362
752 <-> 752
753 <-> 840, 1066, 1424, 1745
754 <-> 854, 1534, 1964
755 <-> 1516, 1907
756 <-> 41, 1069
757 <-> 272
758 <-> 1792
759 <-> 1068
760 <-> 561, 1048, 1377
761 <-> 290, 413, 483, 1457
762 <-> 1170
763 <-> 452, 630
764 <-> 653, 1521
765 <-> 1928, 1986
766 <-> 137, 434, 437
767 <-> 1664
768 <-> 924, 1562, 1923
769 <-> 125, 452
770 <-> 122, 851
771 <-> 527, 1046, 1767
772 <-> 535, 1056
773 <-> 301, 1613, 1751
774 <-> 903, 1110, 1318, 1849
775 <-> 1640
776 <-> 776
777 <-> 777, 1593, 1880
778 <-> 1194, 1524
779 <-> 1299
780 <-> 0
781 <-> 638, 1434, 1448
782 <-> 1540, 1554
783 <-> 9
784 <-> 649, 1017
785 <-> 840, 915, 1325
786 <-> 1424
787 <-> 320, 1049
788 <-> 1273
789 <-> 488, 600
790 <-> 924, 1085, 1775
791 <-> 481
792 <-> 1796
793 <-> 232, 1860
794 <-> 614, 1309
795 <-> 347, 387
796 <-> 796, 1059
797 <-> 71, 225, 294, 418, 546
798 <-> 150, 1818
799 <-> 473, 1224
800 <-> 1864
801 <-> 123, 291, 1546
802 <-> 802, 1648
803 <-> 20, 803
804 <-> 314
805 <-> 1721
806 <-> 1520
807 <-> 1476
808 <-> 155, 808
809 <-> 660, 1880
810 <-> 1816
811 <-> 432, 635, 847
812 <-> 131, 685, 1411
813 <-> 1083
814 <-> 1348
815 <-> 581, 691
816 <-> 223
817 <-> 437, 1702
818 <-> 205, 393, 1751
819 <-> 642, 1161
820 <-> 283, 664, 839, 1157
821 <-> 442, 532, 1310, 1618, 1992
822 <-> 1743
823 <-> 1174
824 <-> 624, 1051
825 <-> 64, 1838
826 <-> 194, 204, 1149
827 <-> 244
828 <-> 1791, 1930, 1936
829 <-> 829, 1398
830 <-> 1816
831 <-> 329, 943, 1612
832 <-> 606, 1223
833 <-> 540, 833
834 <-> 478
835 <-> 478, 835, 1160
836 <-> 906, 1558, 1905
837 <-> 837, 1544
838 <-> 883
839 <-> 820
840 <-> 553, 753, 785
841 <-> 276
842 <-> 1639
843 <-> 843
844 <-> 227, 1436
845 <-> 845
846 <-> 1266
847 <-> 811, 1268, 1386, 1766
848 <-> 615, 949
849 <-> 1616
850 <-> 1334, 1567, 1698
851 <-> 770, 1807
852 <-> 694, 1293, 1946
853 <-> 967
854 <-> 754
855 <-> 1655
856 <-> 959, 1706, 1733
857 <-> 51
858 <-> 866, 1949
859 <-> 859
860 <-> 244, 524, 999
861 <-> 602, 1369, 1568
862 <-> 129, 863, 1179
863 <-> 862, 912, 1688, 1707, 1884
864 <-> 916
865 <-> 865, 1808
866 <-> 356, 858
867 <-> 1624
868 <-> 244
869 <-> 143, 916
870 <-> 1030
871 <-> 547, 634, 1638
872 <-> 901, 1155, 1300
873 <-> 161, 746, 1413
874 <-> 874, 1985
875 <-> 900, 1212, 1616
876 <-> 876
877 <-> 1197
878 <-> 1732
879 <-> 495, 1090
880 <-> 173, 285, 518, 1400
881 <-> 569, 1109
882 <-> 234, 437, 1829
883 <-> 838, 1416, 1492
884 <-> 352, 1108
885 <-> 190, 335, 706, 1802
886 <-> 1930
887 <-> 986
888 <-> 42, 609, 1710
889 <-> 412, 1242
890 <-> 1116, 1335
891 <-> 582
892 <-> 1072, 1378, 1510
893 <-> 214, 483, 1421
894 <-> 1329
895 <-> 655, 1480
896 <-> 907
897 <-> 897, 1191, 1753
898 <-> 206, 528, 555, 1572, 1783
899 <-> 1885
900 <-> 875
901 <-> 872, 1322
902 <-> 28, 1490
903 <-> 774, 1839
904 <-> 904, 1392
905 <-> 706, 1984
906 <-> 110, 836, 1000, 1232
907 <-> 94, 896, 907
908 <-> 278, 1136
909 <-> 504
910 <-> 1938
911 <-> 1507
912 <-> 863, 1581, 1849
913 <-> 1694
914 <-> 348
915 <-> 785
916 <-> 864, 869, 1771
917 <-> 89, 111
918 <-> 1146, 1397
919 <-> 734, 1647, 1936
920 <-> 361, 1287
921 <-> 977
922 <-> 922
923 <-> 1669
924 <-> 556, 768, 790
925 <-> 620, 1207, 1765
926 <-> 666, 1801
927 <-> 1083, 1151
928 <-> 1265
929 <-> 1082
930 <-> 309, 1663
931 <-> 193
932 <-> 932, 1018
933 <-> 991
934 <-> 1554
935 <-> 1826
936 <-> 379, 988, 1011, 1871
937 <-> 1585, 1694
938 <-> 646, 1935
939 <-> 102, 1355
940 <-> 13, 146, 1337
941 <-> 693, 1789
942 <-> 1083, 1723
943 <-> 831, 1471
944 <-> 187, 432
945 <-> 236
946 <-> 387
947 <-> 1579
948 <-> 316, 1044, 1574
949 <-> 848, 1914
950 <-> 612
951 <-> 1012, 1271
952 <-> 43, 1535, 1574
953 <-> 1986
954 <-> 607, 1055, 1452
955 <-> 667
956 <-> 21, 1869
957 <-> 957
958 <-> 10
959 <-> 135, 329, 856
960 <-> 210, 1885
961 <-> 1904
962 <-> 415, 1658
963 <-> 1156
964 <-> 673
965 <-> 52, 981
966 <-> 429, 1734
967 <-> 23, 573, 853
968 <-> 1975
969 <-> 507, 1865
970 <-> 1870
971 <-> 1175
972 <-> 228
973 <-> 1068
974 <-> 1421
975 <-> 975
976 <-> 1401
977 <-> 684, 921, 1798
978 <-> 420
979 <-> 1485
980 <-> 1867, 1893
981 <-> 283, 425, 965
982 <-> 17, 1638
983 <-> 1542
984 <-> 526
985 <-> 985
986 <-> 429, 887
987 <-> 221, 1784
988 <-> 936
989 <-> 622, 1114, 1154
990 <-> 1023, 1027
991 <-> 933, 991
992 <-> 716
993 <-> 73, 80
994 <-> 1221, 1905
995 <-> 175
996 <-> 471, 719, 1379
997 <-> 1790
998 <-> 746
999 <-> 860, 999, 1346
1000 <-> 906
1001 <-> 1171, 1649, 1850
1002 <-> 98, 539, 1998
1003 <-> 1244
1004 <-> 1473
1005 <-> 1706
1006 <-> 1685
1007 <-> 417, 493, 1845, 1980
1008 <-> 239, 513, 1536
1009 <-> 1202, 1442
1010 <-> 60, 498, 1641
1011 <-> 309, 714, 936, 1958
1012 <-> 122, 951
1013 <-> 575, 1239
1014 <-> 1014, 1555, 1961
1015 <-> 69, 308, 1559
1016 <-> 64
1017 <-> 784, 1586, 1643
1018 <-> 932
1019 <-> 691
1020 <-> 1877
1021 <-> 540, 1743, 1798
1022 <-> 1900
1023 <-> 990
1024 <-> 1024
1025 <-> 1444
1026 <-> 88, 617
1027 <-> 990, 1027, 1345
1028 <-> 1228
1029 <-> 44, 1264
1030 <-> 445, 870, 1130
1031 <-> 1158, 1610
1032 <-> 1400
1033 <-> 354
1034 <-> 1802, 1849
1035 <-> 1474
1036 <-> 297, 736
1037 <-> 1473, 1949
1038 <-> 3, 126
1039 <-> 1046
1040 <-> 1082, 1100
1041 <-> 1043
1042 <-> 109
1043 <-> 1041, 1520
1044 <-> 948, 1977
1045 <-> 266, 1189, 1972
1046 <-> 771, 1039
1047 <-> 161, 1168
1048 <-> 229, 760
1049 <-> 137, 787, 1738
1050 <-> 374, 1925
1051 <-> 824, 1631, 1989
1052 <-> 174
1053 <-> 266
1054 <-> 590
1055 <-> 65, 954, 1235
1056 <-> 772, 1368
1057 <-> 25, 1098
1058 <-> 1792, 1819
1059 <-> 796
1060 <-> 127, 366, 419, 538
1061 <-> 1665, 1887, 1983
1062 <-> 564
1063 <-> 408
1064 <-> 436, 1073
1065 <-> 347, 370
1066 <-> 14, 753
1067 <-> 1622
1068 <-> 459, 759, 973, 1844
1069 <-> 82, 509, 740, 756, 1099, 1259, 1351
1070 <-> 1498
1071 <-> 1935
1072 <-> 892, 1072
1073 <-> 1064, 1908
1074 <-> 1609
1075 <-> 555
1076 <-> 1076
1077 <-> 690
1078 <-> 240, 1433
1079 <-> 30, 223, 314, 1112
1080 <-> 460
1081 <-> 1574
1082 <-> 9, 929, 1040, 1382
1083 <-> 813, 927, 942
1084 <-> 116, 202, 253, 1084, 1465
1085 <-> 790
1086 <-> 96, 1190
1087 <-> 575, 611, 1412
1088 <-> 443, 460
1089 <-> 643, 748
1090 <-> 879, 1208, 1288
1091 <-> 1091, 1716
1092 <-> 1456, 1606, 1925
1093 <-> 1158, 1997
1094 <-> 715, 1297, 1313, 1412, 1508
1095 <-> 1095
1096 <-> 714
1097 <-> 58, 132, 1587
1098 <-> 1057, 1254
1099 <-> 705, 1069
1100 <-> 1040, 1813
1101 <-> 1101
1102 <-> 533
1103 <-> 75, 217, 241, 1188
1104 <-> 566, 1792
1105 <-> 1646
1106 <-> 1107, 1574
1107 <-> 1106
1108 <-> 599, 884, 1144, 1476
1109 <-> 606, 881
1110 <-> 774
1111 <-> 1475, 1560, 1663
1112 <-> 1079
1113 <-> 1113, 1715
1114 <-> 989, 1910
1115 <-> 183, 681, 1476, 1866
1116 <-> 362, 890, 1271
1117 <-> 370, 1757
1118 <-> 497, 1977
1119 <-> 487
1120 <-> 1164
1121 <-> 503
1122 <-> 302, 1655
1123 <-> 726, 1856
1124 <-> 294
1125 <-> 27, 1570
1126 <-> 22
1127 <-> 457, 1587
1128 <-> 1320
1129 <-> 1129, 1230
1130 <-> 186, 1030, 1145, 1628
1131 <-> 1151
1132 <-> 321, 1902
1133 <-> 277, 663, 1577
1134 <-> 6, 290, 1976
1135 <-> 219
1136 <-> 604, 908
1137 <-> 148, 1383
1138 <-> 607
1139 <-> 456, 1654
1140 <-> 369
1141 <-> 521
1142 <-> 564, 1143
1143 <-> 1142
1144 <-> 1108
1145 <-> 465, 1130, 1842
1146 <-> 918
1147 <-> 1282
1148 <-> 1148
1149 <-> 826
1150 <-> 711
1151 <-> 152, 927, 1131
1152 <-> 493, 1720
1153 <-> 1865
1154 <-> 649, 989
1155 <-> 872
1156 <-> 963, 1668
1157 <-> 820
1158 <-> 1031, 1093, 1790
1159 <-> 28, 438
1160 <-> 835
1161 <-> 819, 1789
1162 <-> 26, 429, 1374
1163 <-> 145
1164 <-> 213, 337, 1120, 1366
1165 <-> 1843
1166 <-> 1884
1167 <-> 1494, 1799
1168 <-> 1047
1169 <-> 316
1170 <-> 589, 657, 762, 1685
1171 <-> 1001
1172 <-> 427, 1226
1173 <-> 113, 1621
1174 <-> 823, 1174
1175 <-> 182, 971, 1405
1176 <-> 1462
1177 <-> 1177
1178 <-> 1858, 1920
1179 <-> 862, 1664
1180 <-> 94
1181 <-> 628, 1321
1182 <-> 708
1183 <-> 1693
1184 <-> 1879
1185 <-> 1674
1186 <-> 1186, 1575
1187 <-> 1341, 1718
1188 <-> 1103
1189 <-> 1045, 1433
1190 <-> 1086
1191 <-> 347, 402, 897
1192 <-> 484, 1603, 1615
1193 <-> 380, 1193
1194 <-> 594, 778
1195 <-> 67
1196 <-> 1747
1197 <-> 877, 1197
1198 <-> 119, 267, 1380
1199 <-> 222, 733
1200 <-> 50, 415
1201 <-> 406
1202 <-> 640, 1009
1203 <-> 37
1204 <-> 287, 400, 619
1205 <-> 1294
1206 <-> 293, 441, 1444, 1899
1207 <-> 650, 925
1208 <-> 552, 1090
1209 <-> 1797
1210 <-> 168, 1264
1211 <-> 1784
1212 <-> 730, 875, 1515, 1636
1213 <-> 1989
1214 <-> 686, 1214
1215 <-> 420
1216 <-> 219, 408, 1651
1217 <-> 292
1218 <-> 354, 512
1219 <-> 496, 1905
1220 <-> 530
1221 <-> 994
1222 <-> 1222
1223 <-> 250, 832
1224 <-> 799, 1224
1225 <-> 358, 1527
1226 <-> 1172, 1619, 1721
1227 <-> 1509
1228 <-> 153, 167, 474, 1028
1229 <-> 1538, 1959
1230 <-> 1129
1231 <-> 663
1232 <-> 203, 906
1233 <-> 508, 523, 1638
1234 <-> 1693
1235 <-> 1055
1236 <-> 272
1237 <-> 597, 1729
1238 <-> 1656, 1933
1239 <-> 1013
1240 <-> 651
1241 <-> 127, 1689, 1741
1242 <-> 543, 889
1243 <-> 527
1244 <-> 393, 1003
1245 <-> 1245
1246 <-> 1733
1247 <-> 1357, 1543
1248 <-> 221, 520, 1810
1249 <-> 727
1250 <-> 475, 1372, 1444
1251 <-> 1313
1252 <-> 1364
1253 <-> 1274
1254 <-> 652, 1098
1255 <-> 37, 273
1256 <-> 169, 1671
1257 <-> 1257
1258 <-> 96, 586, 1474, 1513
1259 <-> 593, 1069
1260 <-> 398, 444, 1937
1261 <-> 1684
1262 <-> 1328, 1631
1263 <-> 63, 582, 1284, 1637
1264 <-> 266, 1029, 1210
1265 <-> 928, 1376, 1629
1266 <-> 103, 846
1267 <-> 1733
1268 <-> 650, 847, 1902
1269 <-> 1269
1270 <-> 1754
1271 <-> 951, 1116, 1772
1272 <-> 1453
1273 <-> 126, 788
1274 <-> 1253, 1420, 1503
1275 <-> 228
1276 <-> 105
1277 <-> 1979
1278 <-> 446, 469
1279 <-> 1334
1280 <-> 492, 514, 1405, 1941
1281 <-> 1399
1282 <-> 147, 530, 1147
1283 <-> 270
1284 <-> 1263
1285 <-> 1976
1286 <-> 86
1287 <-> 66, 920
1288 <-> 1090, 1588
1289 <-> 79, 1619
1290 <-> 65, 1368
1291 <-> 112, 433
1292 <-> 506
1293 <-> 852
1294 <-> 1205, 1813
1295 <-> 4, 1542
1296 <-> 1767
1297 <-> 603, 717, 1094, 1340
1298 <-> 601, 1387
1299 <-> 242, 779, 1677
1300 <-> 872
1301 <-> 485, 540
1302 <-> 258
1303 <-> 499
1304 <-> 1382, 1906
1305 <-> 1305
1306 <-> 173
1307 <-> 1389, 1589
1308 <-> 1308
1309 <-> 77, 794, 1477
1310 <-> 821, 1317
1311 <-> 375, 551
1312 <-> 571, 1843
1313 <-> 564, 1094, 1251
1314 <-> 1590
1315 <-> 210, 632
1316 <-> 59, 265, 1436, 1872
1317 <-> 1310
1318 <-> 774, 1511
1319 <-> 141, 736
1320 <-> 1128, 1799
1321 <-> 1181, 1833
1322 <-> 901, 1558
1323 <-> 1846, 1906
1324 <-> 1981
1325 <-> 785
1326 <-> 625, 703
1327 <-> 581
1328 <-> 1262
1329 <-> 519, 748, 894
1330 <-> 0, 105, 1851, 1979
1331 <-> 586, 721
1332 <-> 640
1333 <-> 1544
1334 <-> 263, 850, 1279
1335 <-> 890
1336 <-> 1336
1337 <-> 637, 940
1338 <-> 568
1339 <-> 1383, 1449
1340 <-> 1297
1341 <-> 302, 1187, 1686, 1830
1342 <-> 1553, 1658, 1725, 1822
1343 <-> 1821
1344 <-> 462, 1508
1345 <-> 145, 737, 1027, 1947
1346 <-> 236, 999
1347 <-> 111
1348 <-> 545, 814
1349 <-> 1349, 1773, 1969
1350 <-> 419
1351 <-> 1069, 1384, 1946
1352 <-> 1410
1353 <-> 288, 1862, 1919
1354 <-> 136, 195, 1739
1355 <-> 939, 1366
1356 <-> 1623
1357 <-> 1247, 1650, 1949
1358 <-> 231, 263
1359 <-> 1422
1360 <-> 1676
1361 <-> 513, 1361, 1852
1362 <-> 90, 368, 517, 751
1363 <-> 550
1364 <-> 344, 1252
1365 <-> 482, 1968
1366 <-> 1164, 1355
1367 <-> 595
1368 <-> 1056, 1290, 1634
1369 <-> 728, 861, 1884
1370 <-> 64, 481, 629
1371 <-> 294, 1825
1372 <-> 1250
1373 <-> 1373, 1732
1374 <-> 1162
1375 <-> 1572, 1615
1376 <-> 323, 1265
1377 <-> 760
1378 <-> 892
1379 <-> 996
1380 <-> 506, 747, 1198, 1545
1381 <-> 5, 313
1382 <-> 1082, 1304
1383 <-> 1137, 1339
1384 <-> 112, 669, 1351
1385 <-> 421
1386 <-> 847
1387 <-> 1298, 1463
1388 <-> 720
1389 <-> 146, 478, 1307
1390 <-> 675, 1390
1391 <-> 1475, 1950
1392 <-> 904
1393 <-> 45, 72, 1815, 1954
1394 <-> 602, 1594
1395 <-> 106, 445, 1863, 1952
1396 <-> 1495
1397 <-> 918, 1925
1398 <-> 829
1399 <-> 331, 639, 1281
1400 <-> 392, 880, 1032, 1422, 1673
1401 <-> 679, 976
1402 <-> 1830
1403 <-> 133
1404 <-> 219
1405 <-> 1175, 1280
1406 <-> 124, 274
1407 <-> 1980
1408 <-> 1624, 1717
1409 <-> 1560
1410 <-> 1352, 1410
1411 <-> 14, 812, 1968
1412 <-> 215, 1087, 1094
1413 <-> 873, 1413
1414 <-> 70, 571, 1701, 1943
1415 <-> 421, 671
1416 <-> 883, 1416
1417 <-> 579, 1870
1418 <-> 422, 1460
1419 <-> 573
1420 <-> 1274, 1864
1421 <-> 176, 893, 974
1422 <-> 1359, 1400
1423 <-> 287
1424 <-> 753, 786
1425 <-> 1685
1426 <-> 613, 1514
1427 <-> 164
1428 <-> 53, 612
1429 <-> 359, 1556
1430 <-> 298, 1927, 1955
1431 <-> 22, 486
1432 <-> 180
1433 <-> 232, 1078, 1189, 1869
1434 <-> 781
1435 <-> 291, 1599
1436 <-> 741, 844, 1316, 1577
1437 <-> 647, 1722
1438 <-> 1438
1439 <-> 1, 257
1440 <-> 2
1441 <-> 343, 520
1442 <-> 1009
1443 <-> 1443, 1869
1444 <-> 1025, 1206, 1250
1445 <-> 678
1446 <-> 246, 375
1447 <-> 1981
1448 <-> 325, 699, 781
1449 <-> 57, 1339
1450 <-> 1668
1451 <-> 1692, 1802, 1911, 1951
1452 <-> 954
1453 <-> 167, 1272
1454 <-> 117, 554, 690, 692
1455 <-> 1581
1456 <-> 1092, 1696
1457 <-> 388, 761
1458 <-> 684, 721
1459 <-> 419, 1608
1460 <-> 412, 1418, 1460
1461 <-> 59
1462 <-> 1176, 1571, 1979
1463 <-> 1387, 1771
1464 <-> 612
1465 <-> 84, 1084
1466 <-> 1553
1467 <-> 248, 1709
1468 <-> 676
1469 <-> 1603
1470 <-> 404, 1647
1471 <-> 943, 1471
1472 <-> 7, 351, 587, 1903
1473 <-> 1004, 1037
1474 <-> 1035, 1258
1475 <-> 1111, 1391
1476 <-> 807, 1108, 1115
1477 <-> 1309
1478 <-> 418
1479 <-> 674
1480 <-> 895, 1559
1481 <-> 437
1482 <-> 226
1483 <-> 1510
1484 <-> 679
1485 <-> 549, 979, 1650
1486 <-> 45, 1675, 1684
1487 <-> 1632
1488 <-> 636, 1590
1489 <-> 243, 1489
1490 <-> 902
1491 <-> 190
1492 <-> 883, 1661
1493 <-> 1636
1494 <-> 446, 1167
1495 <-> 427, 1396
1496 <-> 77, 457
1497 <-> 1497
1498 <-> 1070, 1498
1499 <-> 1499
1500 <-> 1781
1501 <-> 595, 633
1502 <-> 1502, 1782
1503 <-> 526, 1274
1504 <-> 60, 179
1505 <-> 1646
1506 <-> 1506
1507 <-> 446, 911, 1978
1508 <-> 1094, 1344, 1805
1509 <-> 1227, 1979
1510 <-> 892, 1483
1511 <-> 1318
1512 <-> 334, 360, 1642
1513 <-> 251, 311, 1258
1514 <-> 351, 1426
1515 <-> 1212, 1580
1516 <-> 296, 570, 755
1517 <-> 1901
1518 <-> 83, 439, 457
1519 <-> 259
1520 <-> 806, 1043, 1566
1521 <-> 764
1522 <-> 1912
1523 <-> 431
1524 <-> 778
1525 <-> 54, 292, 1525
1526 <-> 104, 1526
1527 <-> 1225, 1527
1528 <-> 15, 1683, 1794
1529 <-> 498
1530 <-> 62
1531 <-> 270, 706
1532 <-> 1942
1533 <-> 443
1534 <-> 521, 754
1535 <-> 331, 722, 952, 1551
1536 <-> 1008
1537 <-> 517, 729, 1667
1538 <-> 1229
1539 <-> 273, 1582
1540 <-> 324, 782
1541 <-> 628
1542 <-> 983, 1295, 1755
1543 <-> 1247
1544 <-> 837, 1333
1545 <-> 1380, 1704
1546 <-> 456, 801, 1717, 1993
1547 <-> 1555
1548 <-> 1745
1549 <-> 1634
1550 <-> 466, 1982
1551 <-> 1535
1552 <-> 212, 1594, 1613
1553 <-> 276, 1342, 1466
1554 <-> 674, 782, 934
1555 <-> 341, 1014, 1547
1556 <-> 1429
1557 <-> 1787
1558 <-> 836, 1322
1559 <-> 1015, 1480
1560 <-> 1111, 1409
1561 <-> 1561
1562 <-> 768
1563 <-> 1563, 1567
1564 <-> 1847
1565 <-> 1743
1566 <-> 624, 1520
1567 <-> 110, 850, 1563
1568 <-> 128, 861
1569 <-> 1569
1570 <-> 1125, 1769
1571 <-> 1462
1572 <-> 898, 1375
1573 <-> 1846
1574 <-> 948, 952, 1081, 1106, 1927
1575 <-> 1186
1576 <-> 114
1577 <-> 1133, 1436
1578 <-> 1821
1579 <-> 593, 947
1580 <-> 610, 1515
1581 <-> 912, 1455
1582 <-> 1539
1583 <-> 49, 280, 363, 1779
1584 <-> 545, 1902
1585 <-> 937
1586 <-> 408, 1017, 1605
1587 <-> 550, 1097, 1127
1588 <-> 1288
1589 <-> 1307, 1823
1590 <-> 1314, 1488
1591 <-> 301
1592 <-> 599
1593 <-> 777
1594 <-> 1394, 1552
1595 <-> 1665
1596 <-> 1909
1597 <-> 214
1598 <-> 1703
1599 <-> 411, 448, 1435
1600 <-> 1600
1601 <-> 1822
1602 <-> 1816
1603 <-> 151, 1192, 1469, 1797, 1967
1604 <-> 1688
1605 <-> 1586
1606 <-> 19, 401, 1092
1607 <-> 130, 1770
1608 <-> 1459, 1654
1609 <-> 1074, 1728
1610 <-> 1031
1611 <-> 178, 1724
1612 <-> 831
1613 <-> 773, 1552
1614 <-> 85, 556, 566
1615 <-> 1192, 1375
1616 <-> 849, 875, 1917
1617 <-> 1791
1618 <-> 821
1619 <-> 1226, 1289
1620 <-> 1620, 1832
1621 <-> 1173
1622 <-> 546, 1067, 1754
1623 <-> 1356, 1652
1624 <-> 170, 867, 1408, 1868
1625 <-> 409, 1629
1626 <-> 258, 471
1627 <-> 77, 735
1628 <-> 1130
1629 <-> 1265, 1625
1630 <-> 384, 1808
1631 <-> 1051, 1262, 1784, 1833
1632 <-> 677, 1487, 1709
1633 <-> 69
1634 <-> 1368, 1549
1635 <-> 1635
1636 <-> 1212, 1493
1637 <-> 1263, 1990
1638 <-> 871, 982, 1233
1639 <-> 842, 1639
1640 <-> 775, 1843
1641 <-> 1010
1642 <-> 646, 1512, 1816
1643 <-> 534, 1017, 1929
1644 <-> 130, 1820
1645 <-> 1863
1646 <-> 197, 1105, 1505, 1719
1647 <-> 919, 1470, 1975
1648 <-> 802
1649 <-> 1001, 1676
1650 <-> 1357, 1485, 1984
1651 <-> 336, 1216, 1888
1652 <-> 583, 1623, 1652
1653 <-> 1745
1654 <-> 1139, 1608
1655 <-> 855, 1122
1656 <-> 395, 1238
1657 <-> 743, 1812
1658 <-> 429, 962, 1342
1659 <-> 1792
1660 <-> 1764
1661 <-> 644, 1492
1662 <-> 33, 1726
1663 <-> 930, 1111
1664 <-> 767, 1179, 1913
1665 <-> 357, 1061, 1595
1666 <-> 32, 548, 714
1667 <-> 560, 1537
1668 <-> 562, 1156, 1450
1669 <-> 571, 923
1670 <-> 1674
1671 <-> 1256
1672 <-> 600
1673 <-> 252, 1400, 1673, 1901
1674 <-> 507, 1185, 1670
1675 <-> 1486
1676 <-> 618, 1360, 1649
1677 <-> 61, 541, 1299
1678 <-> 86, 249
1679 <-> 513, 1700
1680 <-> 559, 1920
1681 <-> 199
1682 <-> 1895
1683 <-> 165, 1528, 1988
1684 <-> 30, 1261, 1486
1685 <-> 1006, 1170, 1425, 1980
1686 <-> 505, 1341, 1720
1687 <-> 477, 1977
1688 <-> 863, 1604
1689 <-> 1241
1690 <-> 686
1691 <-> 1785, 1890
1692 <-> 1451
1693 <-> 197, 1183, 1234
1694 <-> 735, 913, 937
1695 <-> 112
1696 <-> 1456, 1921
1697 <-> 174, 1768
1698 <-> 850
1699 <-> 1699
1700 <-> 500, 1679
1701 <-> 1414
1702 <-> 817
1703 <-> 56, 223, 1598
1704 <-> 628, 1545
1705 <-> 254
1706 <-> 390, 856, 1005
1707 <-> 863
1708 <-> 1815
1709 <-> 631, 1467, 1632
1710 <-> 538, 888
1711 <-> 1742
1712 <-> 282
1713 <-> 171
1714 <-> 1714
1715 <-> 1113
1716 <-> 1091, 1729
1717 <-> 1408, 1546
1718 <-> 1187
1719 <-> 1646, 1719, 1735
1720 <-> 1152, 1686
1721 <-> 805, 1226
1722 <-> 180, 445, 1437
1723 <-> 942
1724 <-> 614, 1611
1725 <-> 1342
1726 <-> 156, 402, 512, 1662
1727 <-> 718
1728 <-> 1609, 1827, 1881
1729 <-> 288, 1237, 1716
1730 <-> 232
1731 <-> 1863
1732 <-> 88, 410, 878, 1373
1733 <-> 856, 1246, 1267
1734 <-> 966
1735 <-> 1719
1736 <-> 419
1737 <-> 22, 363
1738 <-> 93, 1049
1739 <-> 475, 1354
1740 <-> 427, 503
1741 <-> 1241
1742 <-> 1711, 1853
1743 <-> 521, 822, 1021, 1565
1744 <-> 1989
1745 <-> 753, 1548, 1653
1746 <-> 649
1747 <-> 245, 494, 1196, 1810
1748 <-> 172, 720
1749 <-> 581
1750 <-> 1768
1751 <-> 192, 773, 818
1752 <-> 215, 687
1753 <-> 897
1754 <-> 1270, 1622, 1945
1755 <-> 1542
1756 <-> 344
1757 <-> 1117
1758 <-> 449, 492
1759 <-> 511, 654, 1938
1760 <-> 209, 275
1761 <-> 547
1762 <-> 362, 667
1763 <-> 35
1764 <-> 276, 646, 1660
1765 <-> 925
1766 <-> 847, 1875
1767 <-> 771, 1296
1768 <-> 1697, 1750, 1768, 1780
1769 <-> 1570, 1896
1770 <-> 1607, 1770
1771 <-> 279, 916, 1463
1772 <-> 1271
1773 <-> 1349, 1894
1774 <-> 209
1775 <-> 160, 463, 491, 790
1776 <-> 282
1777 <-> 1952
1778 <-> 1952
1779 <-> 1583
1780 <-> 1768
1781 <-> 1500, 1800
1782 <-> 1502
1783 <-> 381, 898
1784 <-> 147, 435, 655, 987, 1211, 1631
1785 <-> 1691, 1792
1786 <-> 303
1787 <-> 40, 68, 1557
1788 <-> 1788
1789 <-> 515, 941, 1161
1790 <-> 397, 997, 1158
1791 <-> 828, 1617
1792 <-> 758, 1058, 1104, 1659, 1785
1793 <-> 272
1794 <-> 1528
1795 <-> 9
1796 <-> 792, 1933
1797 <-> 651, 1209, 1603
1798 <-> 977, 1021
1799 <-> 562, 1167, 1320
1800 <-> 216, 348, 1781
1801 <-> 926, 1859
1802 <-> 885, 1034, 1451
1803 <-> 409
1804 <-> 257
1805 <-> 629, 1508
1806 <-> 532
1807 <-> 851
1808 <-> 865, 1630
1809 <-> 1809
1810 <-> 1248, 1747
1811 <-> 1911
1812 <-> 1657
1813 <-> 424, 1100, 1294
1814 <-> 1906, 1937
1815 <-> 731, 1393, 1708
1816 <-> 810, 830, 1602, 1642
1817 <-> 271, 1817
1818 <-> 199, 798, 1818
1819 <-> 1058
1820 <-> 1644
1821 <-> 68, 1343, 1578, 1904
1822 <-> 1342, 1601
1823 <-> 1589
1824 <-> 60
1825 <-> 1371
1826 <-> 683, 935
1827 <-> 93, 1728
1828 <-> 326, 555
1829 <-> 882
1830 <-> 1341, 1402
1831 <-> 1831
1832 <-> 1620
1833 <-> 712, 1321, 1631
1834 <-> 1834
1835 <-> 516
1836 <-> 670
1837 <-> 1837
1838 <-> 825
1839 <-> 903
1840 <-> 1840
1841 <-> 1841
1842 <-> 1145
1843 <-> 264, 332, 668, 1165, 1312, 1640
1844 <-> 165, 241, 1068
1845 <-> 1007
1846 <-> 1323, 1573
1847 <-> 640, 1564
1848 <-> 632
1849 <-> 669, 774, 912, 1034
1850 <-> 1001, 1873
1851 <-> 1330
1852 <-> 1361
1853 <-> 402, 1742
1854 <-> 725
1855 <-> 676, 1908
1856 <-> 1123
1857 <-> 418, 460
1858 <-> 140, 271, 1178
1859 <-> 1801
1860 <-> 793
1861 <-> 306, 340
1862 <-> 1353
1863 <-> 1395, 1645, 1731
1864 <-> 672, 800, 1420
1865 <-> 969, 1153
1866 <-> 430, 1115
1867 <-> 980
1868 <-> 136, 1624
1869 <-> 428, 956, 1433, 1443
1870 <-> 534, 970, 1417
1871 <-> 936
1872 <-> 1316
1873 <-> 1850
1874 <-> 337
1875 <-> 1766
1876 <-> 1876
1877 <-> 1020, 1877
1878 <-> 365, 1878
1879 <-> 742, 1184
1880 <-> 777, 809
1881 <-> 394, 1728
1882 <-> 448
1883 <-> 33
1884 <-> 863, 1166, 1369
1885 <-> 365, 899, 960
1886 <-> 327, 686
1887 <-> 46, 339, 1061
1888 <-> 78, 1651
1889 <-> 1889
1890 <-> 1691
1891 <-> 708
1892 <-> 1892
1893 <-> 980, 1941, 1947
1894 <-> 1773
1895 <-> 544, 742, 1682
1896 <-> 285, 1769
1897 <-> 378, 1993
1898 <-> 1981
1899 <-> 220, 1206
1900 <-> 382, 390, 1022
1901 <-> 1517, 1673
1902 <-> 1132, 1268, 1584, 1959
1903 <-> 1472
1904 <-> 961, 1821
1905 <-> 836, 994, 1219
1906 <-> 1304, 1323, 1814
1907 <-> 755
1908 <-> 1073, 1855
1909 <-> 31, 1596
1910 <-> 1114, 1915
1911 <-> 709, 1451, 1811
1912 <-> 60, 1522
1913 <-> 1664
1914 <-> 24, 949
1915 <-> 1910
1916 <-> 222
1917 <-> 1616
1918 <-> 413
1919 <-> 204, 268, 1353
1920 <-> 1178, 1680
1921 <-> 1696
1922 <-> 26
1923 <-> 768
1924 <-> 405, 1924
1925 <-> 79, 1050, 1092, 1397
1926 <-> 1926
1927 <-> 1430, 1574
1928 <-> 376, 765
1929 <-> 1643, 1947
1930 <-> 828, 886
1931 <-> 11, 1960
1932 <-> 59, 136
1933 <-> 472, 1238, 1796
1934 <-> 431
1935 <-> 938, 1071
1936 <-> 828, 919
1937 <-> 532, 1260, 1814
1938 <-> 910, 1759
1939 <-> 704
1940 <-> 505
1941 <-> 1280, 1893
1942 <-> 248, 641, 1532
1943 <-> 1414
1944 <-> 325
1945 <-> 1754
1946 <-> 852, 1351
1947 <-> 1345, 1893, 1929
1948 <-> 35
1949 <-> 121, 858, 1037, 1357
1950 <-> 1391
1951 <-> 1451
1952 <-> 1395, 1777, 1778
1953 <-> 1953
1954 <-> 1393
1955 <-> 1430
1956 <-> 63, 118
1957 <-> 464
1958 <-> 572, 1011
1959 <-> 1229, 1902
1960 <-> 1931
1961 <-> 1014
1962 <-> 1962
1963 <-> 380
1964 <-> 754
1965 <-> 300
1966 <-> 624
1967 <-> 1603
1968 <-> 1365, 1411
1969 <-> 1349
1970 <-> 450
1971 <-> 107, 608
1972 <-> 1045
1973 <-> 23, 389, 673
1974 <-> 1974
1975 <-> 361, 968, 1647, 1994
1976 <-> 1134, 1285
1977 <-> 7, 1044, 1118, 1687
1978 <-> 1507
1979 <-> 1277, 1330, 1462, 1509
1980 <-> 466, 1007, 1407, 1685
1981 <-> 707, 1324, 1447, 1898
1982 <-> 348, 1550
1983 <-> 478, 1061
1984 <-> 905, 1650
1985 <-> 874
1986 <-> 765, 953
1987 <-> 297
1988 <-> 112, 1683
1989 <-> 555, 1051, 1213, 1744
1990 <-> 1637
1991 <-> 1991
1992 <-> 31, 133, 821
1993 <-> 1546, 1897
1994 <-> 603, 1975
1995 <-> 325
1996 <-> 1996
1997 <-> 14, 1093
1998 <-> 1002
1999 <-> 708\
";
const NUM_NODES: usize = 2000;
fn main() {
let mut adj_list = vec![vec![]; NUM_NODES];
for line in INPUT.split('\n') {
let mut iter = line.split(" <-> ");
let src_node = iter.next().unwrap().parse::<usize>().unwrap();
let dest_nodes_iter = iter
.next()
.unwrap()
.split(", ")
.map(|n| n.parse::<usize>().unwrap());
for dest_node in dest_nodes_iter {
adj_list[src_node].push(dest_node);
}
}
let mut num_groups = 0;
let mut visited = [false; NUM_NODES];
let mut queue = VecDeque::new();
while let Some(origin) = visited.iter().position(|b| !b) {
queue.push_back(origin);
num_groups += 1;
while let Some(src) = queue.pop_front() {
if visited[src] { continue; }
visited[src] = true;
queue.extend(&adj_list[src]);
}
}
println!("{}", num_groups);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment