fork download
  1. #!/usr/bin/python
  2. import sys
  3. import random
  4.  
  5. if len(sys.argv) >= 3:
  6. t = int(sys.argv[1])
  7. n = int(sys.argv[2])
  8. else:
  9. t = 1
  10. n = random.randint(3, 240)
  11.  
  12. n -= n % 8
  13. print(n)
  14. lst = []
  15.  
  16. def check(x, y):
  17. for i in lst:
  18. for j in lst:
  19. if i != j and (i[0] - x) * (j[1] - y) == (i[1] - y) * (j[0] - x):
  20. return False
  21. return True
  22.  
  23. if t == 3:
  24. n //= 2
  25.  
  26. if t > 1:
  27. m = n // 4
  28. acc = 0
  29. x0 = m + 4
  30. y0 = m * m + m * 2
  31. for i in range(1, m + 1):
  32. acc += i
  33. lst += [(15 * (x0 + i), acc)]
  34. lst += [(15 * (x0 - i), acc)]
  35. lst += [(15 * (x0 + i), y0 - acc)]
  36. lst += [(15 * (x0 - i), y0 - acc)]
  37.  
  38. if t == 3:
  39. n *= 2
  40.  
  41. if t != 2:
  42. while len(lst) < n:
  43. x = random.randint(0, 1023)
  44. y = random.randint(0, 1023)
  45. if check(x, y):
  46. lst += [(x, y)]
  47.  
  48. for x, y in lst:
  49. print x, y
  50.  
Success #stdin #stdout 0.94s 10616KB
stdin
Standard input is empty
stdout
176
74 123
202 552
393 559
298 653
193 998
57 197
697 319
608 542
642 214
398 844
250 170
500 950
31 410
259 816
249 836
790 42
196 965
616 788
322 94
657 838
753 46
277 332
216 160
377 28
464 25
661 810
253 421
941 921
272 732
570 238
123 341
197 1015
73 140
314 358
35 578
30 636
98 503
955 122
962 367
724 985
174 399
48 734
362 201
444 519
892 474
920 546
997 120
13 704
414 128
845 667
936 979
927 178
531 1017
420 994
486 120
303 222
618 617
593 153
181 877
1017 456
308 382
373 840
891 384
975 415
499 631
766 145
228 608
373 62
523 70
204 212
668 290
220 725
244 6
348 208
458 9
996 875
807 653
921 851
40 904
717 784
662 614
1008 553
230 354
516 346
321 122
396 876
1001 583
446 558
623 874
794 747
917 53
162 93
510 63
96 967
518 379
265 649
170 176
913 1013
943 805
1021 372
289 124
446 632
791 359
376 43
555 790
260 865
723 490
181 903
535 770
310 947
752 278
594 370
171 484
741 621
712 698
218 8
898 245
928 46
910 451
272 92
551 550
149 702
723 80
255 191
292 766
821 53
190 974
928 223
964 553
544 210
581 759
633 575
324 615
806 544
673 715
269 844
660 657
451 840
435 442
254 480
254 228
470 546
233 209
497 1014
979 1
360 39
783 664
823 938
54 216
92 82
225 40
105 951
93 538
441 414
165 568
369 883
948 988
335 880
171 552
653 545
398 641
970 989
349 360
305 467
322 86
808 687
916 406
162 549
925 312
980 957
31 523
330 248
501 977
445 15
416 652
693 849