fork download
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4. #include <string>
  5. #include <cstring>
  6. #include <vector>
  7. #include <stack>
  8. #include <queue>
  9. #include <deque>
  10. #include <set>
  11. #include <map>
  12. #include <cassert>
  13. #include <algorithm>
  14. #include <iomanip>
  15. #include <ctime>
  16. #include <cmath>
  17. #include <bitset>
  18.  
  19. #pragma comment(linker, "/STACK:256000000")
  20.  
  21. using namespace std;
  22.  
  23. typedef long long int int64;
  24. typedef long double double80;
  25.  
  26. const int INF = (1 << 29) + 5;
  27. const int64 LLINF = (1ll << 59) + 5;
  28. const int MOD = 1000 * 1000 * 1000 + 7;
  29. const int n = 6666;
  30.  
  31. struct point
  32. {
  33. int x;
  34. int number;
  35. };
  36.  
  37. point arr[n];
  38. point newArr[n];
  39.  
  40. int check(point arr[])
  41. {
  42. int answer = 0;
  43. for (int i = 0; i < 2016; ++i)
  44. {
  45. answer += arr[i].x;
  46. }
  47.  
  48. return answer % 2016;
  49. }
  50.  
  51. void suffle(int col, point arr[])
  52. {
  53. for (int i = 0; i < col; ++i)
  54. {
  55. swap(arr[rand() % n], arr[rand() % n]);
  56. }
  57. }
  58.  
  59. int main()
  60. {
  61. //freopen("input.txt", "r", stdin);
  62. //freopen("output.txt", "w", stdout);
  63.  
  64. for (int i = 0; i < n; ++i)
  65. {
  66. scanf("%d", &arr[i].x);
  67. arr[i].number = i + 1;
  68. }
  69.  
  70. srand(0);
  71. random_shuffle(arr, arr + n);
  72.  
  73. int now = check(arr);
  74. double mod = 0.98;
  75. double T = 2000;
  76. int NewE;
  77. double good;
  78.  
  79.  
  80. while (now != 0)
  81. {
  82. for (int i = 0; i < n; ++i)
  83. {
  84. newArr[i] = arr[i];
  85. }
  86.  
  87. suffle(ceil(T), newArr);
  88.  
  89. NewE = check(newArr);
  90.  
  91. good = min(exp(-(NewE - now) / T), 1.0);
  92.  
  93. if (good > (double)rand() / (double)RAND_MAX)
  94. {
  95. now = NewE;
  96. for (int i = 0; i < n; ++i)
  97. {
  98. arr[i] = newArr[i];
  99. }
  100. }
  101.  
  102. T *= mod;
  103.  
  104. }
  105.  
  106.  
  107. for (int i = 0; i < 2016; ++i)
  108. {
  109. printf("%d\n", arr[i].number);
  110. }
  111.  
  112.  
  113. fclose(stdin);
  114. fclose(stdout);
  115.  
  116. return 0;
  117. }
Success #stdin #stdout 0s 3512KB
stdin
Standard input is empty
stdout
3187
1191
3594
4443
2401
469
707
3755
165
3913
3880
4336
362
6188
5984
3338
1417
1195
5057
2974
1576
2756
421
2319
5982
1983
3141
1688
4474
4681
6417
5179
6059
2256
3123
3672
6463
6076
3054
3447
67
673
3269
4494
5276
6538
5152
5135
3901
271
1269
1312
4765
6571
5309
6472
1387
6475
6394
3597
5664
390
142
3725
4399
5129
718
34
1547
5053
26
782
711
1638
5846
435
543
1896
4977
5587
1194
1273
1223
2730
2884
45
3059
2979
4636
2759
6431
5890
2661
4022
1836
556
2096
2280
5235
909
6455
5721
3472
5353
2045
5497
5140
4050
639
6352
1979
5282
62
507
4067
68
3384
688
4007
1097
4186
4897
5723
5316
2637
4047
1449
3401
6329
3362
2113
5117
2064
5334
4753
1241
1003
4488
2123
5186
3651
6242
5363
770
1832
3772
4081
1202
3941
2037
3856
2582
2614
4791
2850
162
4079
5469
4888
3506
1767
136
1874
5278
1346
746
277
771
415
4098
2153
4734
2313
3735
1873
4882
2515
1859
2243
383
2939
2996
347
4406
3469
1338
122
4401
6391
3893
1817
4930
2942
4645
3532
5523
71
705
666
6587
902
2095
5114
4587
2782
4263
1845
5413
3684
6478
4021
1203
4965
280
5381
6355
404
6016
1095
6239
2468
1396
989
6484
2376
1634
5758
6032
3915
607
2150
4539
2195
5477
6465
2049
652
478
1947
3636
452
6110
3034
6022
512
1721
2859
3342
6561
3765
2040
896
5456
5155
2902
1206
5869
6141
4413
1287
2302
4567
3293
3366
1354
678
6480
1616
3789
5559
4076
96
371
1048
3861
6433
2554
2485
4002
2425
1058
2907
5194
938
318
1171
5458
3113
2903
5816
4207
5065
5713
2977
6586
1780
1067
2162
985
4360
2770
5715
597
1989
1455
3890
3579
3873
2061
2080
5516
6514
6162
1645
4631
5275
1606
2714
1759
2316
2028
4265
5411
1323
6291
2751
3888
2993
3399
4570
738
249
1293
5839
204
5711
6584
6609
1358
2620
2799
3603
3443
4849
6244
1161
6460
6161
4285
1955
5204
2671
3613
5717
3028
4657
5307
6512
4633
6627
3717
5111
1290
4708
5206
3617
6083
2898
5630
812
1629
681
2428
5599
5379
4110
6001
5150
2854
5923
3119
5770
4383
6332
4606
6374
6498
172
1833
2584
581
17
5109
2312
889
891
253
906
2621
3376
1820
3457
56
3153
2222
4879
4218
881
2101
2006
4627
5418
2509
1074
5320
337
4735
5744
1937
5815
5096
2426
4295
4495
2332
3295
5050
97
3568
3997
3372
5676
295
1587
4999
3936
1390
2294
484
4687
1434
5420
5947
4346
4340
2998
2959
326
622
4203
6494
4697
2801
5780
1652
910
980
1139
3375
6181
5345
2324
1964
5636
1102
6166
2386
2370
4667
1109
811
6386
306
272
2314
1546
243
2525
3899
1006
5858
2198
3219
6495
3601
5052
2125
4913
6123
3021
4790
1675
6075
1157
5606
1468
3305
1357
4520
3858
4167
2286
2277
1341
5682
3846
3981
307
2403
2585
3869
263
5641
3486
4579
1522
1146
890
227
1051
3664
844
5220
6253
2115
2228
3658
417
3502
3549
1641
3822
4625
1078
864
3970
2863
710
1790
6362
5279
5910
2144
3985
1928
1725
5268
254
1339
2718
3208
3557
1556
1043
461
3493
6201
5116
2894
4270
2394
5313
368
2895
2609
822
3483
2811
842
5837
4062
814
6168
1655
6285
5291
5906
3235
1253
5025
617
3263
76
6314
6132
4736
2304
1520
4608
144
2786
2769
4005
4156
3752
5212
5666
4640
5484
219
5450
3566
4070
6051
5475
5862
3596
1801
4537
729
3168
3110
5095
4557
4217
453
1137
3337
2680
5145
4302
3402
6136
5280
6449
4251
6255
4253
4099
1248
6404
6268
1750
5029
6237
674
447
15
4792
1628
813
4172
3643
3676
5650
4902
2533
4298
4806
6223
4166
4733
1608
4580
1627
1422
361
3546
4107
4772
2606
2289
2388
1847
862
3702
5492
6483
2188
1262
548
422
2639
4679
2387
4824
690
2752
6164
2439
6510
2882
4743
3207
5631
689
5222
4963
1508
2341
5961
5944
330
2744
2535
4153
5414
236
6476
6660
6257
4725
2662
4528
3380
2632
888
113
5480
2750
2075
5076
2337
5934
2384
1049
2097
5047
5467
438
3335
3251
6607
2901
5767
4439
3798
1275
5924
278
2484
1108
5965
6380
3821
821
5215
3030
3177
4314
929
6508
3097
3264
1944
1226
4199
89
4777
2056
3854
3850
1796
4191
5879
6084
3582
3947
5520
2192
5943
6144
37
110
5989
3830
298
4822
3785
2707
6482
244
3398
3935
3843
1101
5126
5522
2457
679
3013
2928
5386
2975
5539
1381
4838
4171
4961
2298
1745
1222
2862
6264
3660
4347
2218
5180
1307
3902
6182
3475
2556
5457
4605
5969
2880
2601
4194
1593
3369
141
4954
5658
6131
1059
3626
4387
4305
3064
1602
6572
1597
6316
2414
3763
693
3061
1943
1764
356
4043
5327
1960
4132
5953
2777
921
282
1020
6414
2919
246
3647
5737
4830
3350
6600
2825
2059
3326
2749
4114
384
2761
6230
1297
1735
1215
2446
2202
2684
4289
1386
3170
4426
367
5946
499
5948
6265
1865
1703
4482
1904
5674
4468
4142
2745
260
3954
29
329
152
185
5903
4941
3250
4378
3960
3700
3984
4181
5099
1168
5994
6457
532
1347
3715
6238
6092
1042
1905
3533
732
4246
2660
6142
658
150
6140
3357
4214
6515
2527
4238
5620
2958
2349
3791
1577
1418
1148
6354
4372
3800
917
3639
2918
341
5103
4857
4825
772
6145
6218
2106
720
4642
504
6278
137
4984
619
2623
2165
6158
621
3211
1889
3240
2015
834
1976
5448
220
602
4998
5625
4810
3807
5246
6194
2988
1032
6656
2296
5157
6312
2194
4866
6477
3132
494
1452
820
6294
2104
1005
290
2475
5939
4814
3959
5930
2411
4086
775
4616
1898
400
5107
5536
3556
6249
5683
801
1573
1001
2823
3675
369
27
3117
3035
258
5483
2512
868
2036
4918
5769
5873
4820
521
2258
5010
5745
114
5143
3836
1069
655
5824
4078
4231
2559
6225
3577
3619
2229
2330
261
4797
3026
4324
2941
2652
4485
4860
4750
2688
5124
3678
6395
4463
3005
1566
810
5261
1292
4915
3542
4410
4373
5526
4364
4035
561
4891
1133
6052
5550
4756
5490
2295
724
2261
2260
403
3827
358
4261
530
2852
31
5360
4178
1009
2149
1028
302
930
5647
3050
5578
3804
3271
3551
2604
1900
1827
2830
4240
3363
4937
1155
5597
2580
2220
1918
4206
2419
196
5932
662
4489
5888
5665
5591
3429
5663
352
4832
1431
5281
1172
4460
5388
4628
3287
6532
5075
2792
2864
3020
6442
4584
3210
5405
4152
2674
6424
3105
39
936
5393
5412
2846
580
1154
5092
355
4334
5775
3453
4077
134
6632
5384
3512
5926
4543
575
983
6617
1958
2278
887
5066
777
2616
588
4411
4458
6067
6232
3172
2519
498
717
156
1242
4850
4612
4695
2161
659
866
3045
2068
4702
5639
926
3786
5371
3427
402
2180
4162
569
2141
6062
3957
927
5148
6045
3191
4296
485
5819
1004
4585
111
5796
4390
716
5927
1071
6055
995
3404
5087
4051
4039
51
1276
5338
2434
2249
4477
5686
1200
2190
5323
3284
3273
35
1091
3814
1366
5081
1700
6558
1957
609
2504
5771
1678
6262
6002
6135
3961
6184
5213
5310
2317
1406
5649
1178
5571
3213
5773
247
217
2572
334
316
3654
1288
3853
2083
6149
2323
4883
4561
2436
1724
2531
3339
4779
3349
2020
6177
380
5893
1053
3016
6432
4976
1709
1992
3599
4180
2798
5535
1257
1887
5426
1586
3438
2969
1565
4225
2936
385
2267
2776
5834
16
3300
5509
4844
2946
4402
2563
1567
859
629
4637
1400
535
5949
6196
2489
4339
3898
4859
4970
1553
3151
2079
755
6039
2506
5595
3788
289
3434
3734
829
4345
948
4562
3360
2962
4741
1443
276
656
6665
841
4803
4333
2829
6582
3951
5198
3845
5305
695
4233
474
4275
2109
4416
1786
1701
2168
5455
2038
4216
4876
2540
4575
3949
4894
1765
1110
2787
993
3832
1837
1392
1862
5925
1283
4113
74
4988
5545
1509
5570
6336
513
1570
5640
2283
4350
1768
4393
1432
3877
5335
5062
3198
3498
3043
1639
167
3633
766
5755
6649
4665
1965
5973
149
4615
5983
865
5147
4292
4759
6408
2741
4421
429
1858
288
2576
1084
5252
3926
6381
3889
5352
4040
853
2748
5672
2508
745
5461
5842
5866
2178
5207
5852
163
106
5736
1617
5312
6128
4435
6506
4920
2610
3517
3388
3691
3758
4210
4388
6602
5588
5289
1255
58
2355
867
3514
1906
1654
6200
5871
5343
4774
5407
6608
4599
6025
3640
6154
694
5956
5022
2331
1805
3732
2429
1653
2724
2827
1419
2909
6376
2163
3329
6050
2282
4588
6616
1863
4061
3471
364
3106
2350
808
1061
4473
3848
5216
5679
1766
4428
2669
5988
3544
5778
713
5596
4325
1207
966
2570
6427
6588
5917
4424
4975
4080
3216
259
2841
3653
2599
542
4160
4763
2888
6121
2442
2727
2372
4164
1002
5593
442
5003
737
4949
3620
6371
3188
2358
1746
3258
1019
3272
898
4663
4938
2982
5814
6518
5269
4344
1010
893
1575
1956
5097
294
3485
3944
3162
3581
5419
4149
33
6615
1949
229
1359
1299
3265
739
2763
4312
6008
5798
4087
6624
4980
126
4137
3914
6645
6598
2549
420
5987
5375
4785
5848
3716
5826
882
5042
4566
5302
5478
4966
2070
459
5355
6545
1603
44
5181
589
3154
3090
5445
5026
1618
1535
992
3862
2084
2536
6306
488
2481
325
5727
2336
2433
6549
3356
1732
3499
424
4848
6625
4530
5942
436
1920
4685
3681
3539
945
6623
3685
6026
4922
4018
279
5895
1112
3352
315
5084
751
2872
815
5367
3841
2233
5219
1503
138
4258
6451
5801
2932
559
1708
3698
4136
321
6214
1130
1350
1699
6189
2683
5159
433
3459
5442
5348
1430
2738
64
1382
3778
3477
3497
1806
3710
6410
4048
554
43
4059
1850
4813
1661
5878
4058
3851
5652
6293
1506
4467
6644
5708
4630
1988
4909
3746
1219
1055
3425
48
2211
372
6106
6010
6224
1855
6464
3744
5756
2023
1751
3975
5185
5369
5000
6550
4754
3616
1901
3919
1572
5841
5322
4155
4148
6240
2476
6500
557
1981
5574
4589
5404
4170
4431
3721
216
3635
1096
4479
5005
5142
1413
931
4133
6382
2259
3057
3882
1552
4648
1356
1150
5380
348
1537
6048
1075
5628
5833
218
5230
5474
5161
1633
5783
3697
4856
3632
3923
4638
4729
2321
2210
2986
4082
892
803
2523
3392
5247
2868
1809
6338
2579
4906
3414
264
5459
3343
6234
1779
3589
6279
6326
1939
1122
759
6156
462
4914
1995
4444
5086
365
3041
5655
3618
2007
1773
1337
5046
2695
4163
5764
1664
4380
1022
170
797
3
4226
398
1581
2913
3669
2935
2522
6445
5444
1757
195
2417
1295
4989
2347
1829
4257
4995
4343
4227
4784
4548
2502
4176
4512
773
1971
4230
5498
915
3249
1588
6456
1491
1294
928
2021
682
5512
2708
1332
6405
2205
1514
1281
3217
5863
4376
2147
6179
3680
5739
5416
5359
2392
4508
3767
1660
5958
456
187
2048
6283
3572
4621
5598
133
5753
4115
1555
4837
873
1065
1910
397
207
3973
6250
786
6298
1261
5959
3490
5401
3787
2356
5330
1136
471
4816
6640
937
396
3436
518
4868
3440
3441
1499
4215
53
4982
1185
4893
6619
2514
2427
4204
1945
586
4212
6066
5581
3588
3133
2832
2513
180
2949
1856
314
669
757
1935
1116
1551
5326
5931
5423
3990
5499
4197
3507
4351
6102
98
2518
4278
5184
6235
4698
599
3102
2359
6217
502
2520
3297
3023
4852
2467
2269
4277
5385
3364
5722
1621
3891
901
3253
6021
3929
2449
5619
5452
2454
3428
1526
1599
2739
2014
3648
4925
3768