Submission details
Task:Distances
Sender:Dozenal
Submission time:2026-04-17 12:56:17 +0300
Language:Python3 (PyPy3)
Status:READY
Result:10
Feedback
subtaskverdictscore
#10
#2ACCEPTED4
#3ACCEPTED6
#40
#50
#60
Test results
testverdicttimesubtask
#10.05 s1, 4, 6details
#2ACCEPTED0.04 s1, 2, 3, 4, 5, 6details
#3ACCEPTED0.04 s1, 3, 4, 5, 6details
#4ACCEPTED0.04 s1, 2, 4, 6details
#5ACCEPTED0.04 s1, 3, 4, 5, 6details
#6ACCEPTED0.04 s1, 4, 6details
#70.04 s1, 4, 6details
#8ACCEPTED0.04 s1, 2, 4, 6details
#9ACCEPTED0.04 s1, 3, 4, 5, 6details
#10ACCEPTED0.04 s1, 4, 5, 6details
#110.04 s1, 4, 6details
#12ACCEPTED0.05 s1, 4, 6details
#130.04 s1, 4, 6details
#140.04 s1, 6details
#15ACCEPTED0.04 s1, 2, 6details
#160.04 s4, 6details
#170.04 s4, 6details
#18ACCEPTED0.04 s3, 4, 5, 6details
#190.04 s4, 5, 6details
#200.04 s4, 5, 6details
#210.04 s5, 6details
#220.05 s5, 6details
#23ACCEPTED0.04 s2, 6details
#24ACCEPTED0.04 s3, 4, 5, 6details
#250.04 s4, 5, 6details
#260.04 s4, 5, 6details
#270.04 s5, 6details
#280.04 s5, 6details
#29ACCEPTED0.04 s2, 6details
#30ACCEPTED0.04 s3, 4, 5, 6details
#31ACCEPTED0.04 s4, 5, 6details
#320.04 s4, 5, 6details
#330.04 s4, 5, 6details
#340.04 s5, 6details
#350.04 s5, 6details
#360.04 s5, 6details
#370.04 s6details
#380.04 s6details
#39ACCEPTED0.04 s2, 6details
#400.04 s6details
#410.05 s6details
#420.05 s6details
#430.04 s6details
#440.04 s6details

Code

import math
import itertools

# Read input
n, k = map(int, input().split())
def T(x):
    return x * (x - 1) // 2

# Early exits
if k == T(n):
    for i in range(n):
        print(0, i)
    exit()
if k == 0:
    for i in range(n):
        print(i, i)
    exit()

# Primes and the long side
P = [2, 3, 5, 7, 11, 13, 17]
C = 5040
D = []
for d in range(1, C + 1):
    if not C % d:
        D.append(d)
        D.append(-d)

# Variables
line = 0 
while T(line + 1) <= k: 
    line += 1
sq = k - T(line)
other = line - sq
banish = n - line - 1

#print(f"line = {line}, sq = {sq}, other = {other}, banish = {banish}")

# Construct points
Points = [(0,0)] # Center

for j in range(banish):
    Points.append((-10**9 + j + 1, -10**9 + j + 1))

for i in range(sq):
    a = D[i]
    b = C // D[i]
    print(a, b)

    Points.append((a*a - b*b, 2 * C))
    print(a*a + b*b)

for i in range(other):
    Points.append((i + 1, 2 * C))

#print(len(Points))
for p in Points:
    print(p[0], p[1])

def sq(x):
    p = 32
    s = 0
    while p >= 0:
        s += 2**p
        if s * s > x:
            s -= 2**p
        p -= 1
    
    return (s * s == x)

def tester():
    s = 0
    for i in range(n):
        for j in range(i + 1, n):
            p = Points[i]
            q = Points[j]
            
            x = p[0] - q[0]
            y = p[1] - q[1]

            #print(p, q, math.sqrt(x*x + y*y), sq(x*x + y*y))

            if sq(x*x + y*y):
                s += 1
    
    return s

#print(tester())

Test details

Test 1

Subtask: 1, 4, 6

Verdict:

input
3 2

correct output
1 1
1 2
2 2

user output
1 5040
25401601
0 0
-25401599 10080
1 10080

Test 2

Subtask: 1, 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
1 0

correct output
1 0

user output
0 0

Test 3

Subtask: 1, 3, 4, 5, 6

Verdict: ACCEPTED

input
2 0

correct output
1 0
804289383 846930886

user output
0 0
1 1

Test 4

Subtask: 1, 2, 4, 6

Verdict: ACCEPTED

input
2 1

correct output
1 0
2 0

user output
0 0
0 1

Test 5

Subtask: 1, 3, 4, 5, 6

Verdict: ACCEPTED

input
3 0

correct output
1 0
804289383 846930886
681692777 714636915

user output
0 0
1 1
2 2

Test 6

Subtask: 1, 4, 6

Verdict: ACCEPTED

input
3 1

correct output
1 0
2 0
804289383 846930886

user output
0 0
1 10080
2 10080

Test 7

Subtask: 1, 4, 6

Verdict:

input
3 2

correct output
1 1
1 2
2 2

user output
1 5040
25401601
0 0
-25401599 10080
1 10080

Test 8

Subtask: 1, 2, 4, 6

Verdict: ACCEPTED

input
3 3

correct output
1 0
2 0
3 0

user output
0 0
0 1
0 2

Test 9

Subtask: 1, 3, 4, 5, 6

Verdict: ACCEPTED

input
4 0

correct output
1 0
804289383 846930886
681692777 714636915
957747793 424238335

user output
0 0
1 1
2 2
3 3

Test 10

Subtask: 1, 4, 5, 6

Verdict: ACCEPTED

input
4 1

correct output
1 0
2 0
804289383 846930886
681692777 714636915

user output
0 0
-999999999 -999999999
1 10080
2 10080

Test 11

Subtask: 1, 4, 6

Verdict:

input
4 2

correct output
21392 0
1 0
0 510510
804289383 846930886

user output
1 5040
25401601
0 0
-999999999 -999999999
-25401599 10080
...

Test 12

Subtask: 1, 4, 6

Verdict: ACCEPTED

input
4 3

correct output
1 0
2 0
3 0
804289383 846930886

user output
0 0
1 10080
2 10080
3 10080

Test 13

Subtask: 1, 4, 6

Verdict:

input
4 4

correct output
21392 0
1 0
2 0
0 510510

user output
1 5040
25401601
0 0
-25401599 10080
1 10080
...

Test 14

Subtask: 1, 6

Verdict:

input
4 5

correct output
21392 0
22600 0
1 0
0 510510

user output
1 5040
25401601
-1 -5040
25401601
0 0
...

Test 15

Subtask: 1, 2, 6

Verdict: ACCEPTED

input
4 6

correct output
1 0
2 0
3 0
4 0

user output
0 0
0 1
0 2
0 3

Test 16

Subtask: 4, 6

Verdict:

input
5 5

correct output
21392 0
22600 0
1 0
0 510510
804289383 846930886

user output
1 5040
25401601
-1 -5040
25401601
0 0
...

Test 17

Subtask: 4, 6

Verdict:

input
6 5

correct output
21392 0
22600 0
1 0
0 510510
804289383 846930886
...

user output
1 5040
25401601
-1 -5040
25401601
0 0
...

Test 18

Subtask: 3, 4, 5, 6

Verdict: ACCEPTED

input
98 0

correct output
1 0
804289383 846930886
681692777 714636915
957747793 424238335
719885386 649760492
...

user output
0 0
1 1
2 2
3 3
4 4
...

Test 19

Subtask: 4, 5, 6

Verdict:

input
98 97

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 20

Subtask: 4, 5, 6

Verdict:

input
98 98

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 21

Subtask: 5, 6

Verdict:

input
98 1185

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 22

Subtask: 5, 6

Verdict:

input
98 1188

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 23

Subtask: 2, 6

Verdict: ACCEPTED

input
98 4753

correct output
1 0
2 0
3 0
4 0
5 0
...

user output
0 0
0 1
0 2
0 3
0 4
...

Test 24

Subtask: 3, 4, 5, 6

Verdict: ACCEPTED

input
99 0

correct output
1 0
804289383 846930886
681692777 714636915
957747793 424238335
719885386 649760492
...

user output
0 0
1 1
2 2
3 3
4 4
...

Test 25

Subtask: 4, 5, 6

Verdict:

input
99 98

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 26

Subtask: 4, 5, 6

Verdict:

input
99 99

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 27

Subtask: 5, 6

Verdict:

input
99 1201

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 28

Subtask: 5, 6

Verdict:

input
99 1212

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 29

Subtask: 2, 6

Verdict: ACCEPTED

input
99 4851

correct output
1 0
2 0
3 0
4 0
5 0
...

user output
0 0
0 1
0 2
0 3
0 4
...

Test 30

Subtask: 3, 4, 5, 6

Verdict: ACCEPTED

input
100 0

correct output
1 0
804289383 846930886
681692777 714636915
957747793 424238335
719885386 649760492
...

user output
0 0
1 1
2 2
3 3
4 4
...

Test 31

Subtask: 4, 5, 6

Verdict: ACCEPTED

input
100 1

correct output
1 0
2 0
804289383 846930886
681692777 714636915
957747793 424238335
...

user output
0 0
-999999999 -999999999
-999999998 -999999998
-999999997 -999999997
-999999996 -999999996
...

Test 32

Subtask: 4, 5, 6

Verdict:

input
100 5

correct output
21392 0
22600 0
1 0
0 510510
804289383 846930886
...

user output
1 5040
25401601
-1 -5040
25401601
0 0
...

Test 33

Subtask: 4, 5, 6

Verdict:

input
100 100

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 34

Subtask: 5, 6

Verdict:

input
100 1000

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 35

Subtask: 5, 6

Verdict:

input
100 1232

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 36

Subtask: 5, 6

Verdict:

input
100 1237

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 37

Subtask: 6

Verdict:

input
100 2222

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 38

Subtask: 6

Verdict:

input
100 3395

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 39

Subtask: 2, 6

Verdict: ACCEPTED

input
100 4950

correct output
1 0
2 0
3 0
4 0
5 0
...

user output
0 0
0 1
0 2
0 3
0 4
...

Test 40

Subtask: 6

Verdict:

input
100 4949

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 41

Subtask: 6

Verdict:

input
100 4948

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 42

Subtask: 6

Verdict:

input
100 4930

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 43

Subtask: 6

Verdict:

input
100 4920

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...

Test 44

Subtask: 6

Verdict:

input
100 4900

correct output
21392 0
22600 0
30056 0
34848 0
38584 0
...

user output
1 5040
25401601
-1 -5040
25401601
2 2520
...