Submission #3494398


Source Code Expand

def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a % b)
T = []
for i in range(1, 26):
    for j in range(1, 26):
        if gcd(i,j) == 1:
            T.append([i, j])

N = int(input())
L = [[0 for i in range(100)] for j in range(100)]
for i in range(N):
    x, y = map(int, input().split())
    L[x][y] = 1
h = 100
def exc(c):
    ret = 0
    if c >= 4:
        ret += (c*(c-1)*(c-2)*(c-3))//24
    if c>= 3:
        ret += ((c*(c-1)*(c-2))//6) * (N-c)
    return ret
ans = (N*(N-1)*(N-2)*(N-3))//24
for i in range(h):
    c=0
    for j in range(h):
        if L[i][j] > 0:
            c += 1
    ans -= exc(c)
for i in range(h):
    c=0
    for j in range(h):
        if L[j][i] > 0:
            c += 1
    ans -= exc(c)
for i, j in T:
    for a in range(i):
        for b in range(h):
            c = 0
            k = 0
            while True:
                if a + i*k >= h or b + j*k >= h:
                    break
                if L[a + i*k][b + j*k] > 0:
                    c += 1
                k += 1
            ans -= exc(c)
            
            c = 0
            k = 0
            while True:
                if a + i*k >= h or b - j*k < 0:
                    break
                if L[a + i*k][b - j*k] > 0:
                    c += 1
                k += 1
            ans -= exc(c)
    for a in range(i, h):
        for b in range(j):
            c = 0
            k = 0
            while True:
                if a + i*k >= h or b + j*k >= h:
                    break
                if L[a + i*k][b + j*k] > 0:
                    c += 1
                k += 1
            ans -= exc(c)
    for a in range(i, h):
        for b in range(h-j, h):
            c = 0
            k = 0
            while True:
                if a + i*k >= h or b - j*k < 0:
                    break
                if L[a + i*k][b - j*k] > 0:
                    c += 1
                k += 1
            ans -= exc(c)
    
print (ans)



Submission Info

Submission Time
Task B - よんてん
User Kiri8128
Language Python (3.4.3)
Score 0
Code Size 2066 Byte
Status TLE
Exec Time 2104 ms
Memory 3316 KB

Judge Result

Set Name level1 level2 level3 level4
Score / Max Score 0 / 4 0 / 16 0 / 30 0 / 50
Status
TLE × 8
TLE × 33
TLE × 55
TLE × 78
Set Name Test Cases
level1 04/04_input00, 04/04_input01, 04/04_input02, 04/04_input03, 04/04_input04, 04/04_input05, 04/04_input06, 04/04_sample1
level2 04/04_input00, 04/04_input01, 04/04_input02, 04/04_input03, 04/04_input04, 04/04_input05, 04/04_input06, 04/04_sample1, 16/16_input05, 16/16_input06, 16/16_input07, 16/16_input08, 16/16_input09, 16/16_input10, 16/16_input11, 16/16_input12, 16/16_input13, 16/16_input14, 16/16_input15, 16/16_input16, 16/16_input17, 16/16_input18, 16/16_input19, 16/16_input20, 16/16_input21, 16/16_input22, 16/16_input23, 16/16_input24, 16/16_input64, 16/16_input65, 16/16_input66, 16/16_input67, 16/16_sample2
level3 04/04_input00, 04/04_input01, 04/04_input02, 04/04_input03, 04/04_input04, 04/04_input05, 04/04_input06, 04/04_sample1, 16/16_input05, 16/16_input06, 16/16_input07, 16/16_input08, 16/16_input09, 16/16_input10, 16/16_input11, 16/16_input12, 16/16_input13, 16/16_input14, 16/16_input15, 16/16_input16, 16/16_input17, 16/16_input18, 16/16_input19, 16/16_input20, 16/16_input21, 16/16_input22, 16/16_input23, 16/16_input24, 16/16_input64, 16/16_input65, 16/16_input66, 16/16_input67, 16/16_sample2, 30/30_input25, 30/30_input26, 30/30_input27, 30/30_input28, 30/30_input29, 30/30_input30, 30/30_input31, 30/30_input32, 30/30_input33, 30/30_input34, 30/30_input35, 30/30_input36, 30/30_input37, 30/30_input38, 30/30_input39, 30/30_input40, 30/30_input41, 30/30_input42, 30/30_input43, 30/30_input44, 30/30_input68, 30/30_input69
level4 04/04_input00, 04/04_input01, 04/04_input02, 04/04_input03, 04/04_input04, 04/04_input05, 04/04_input06, 04/04_sample1, 16/16_input05, 16/16_input06, 16/16_input07, 16/16_input08, 16/16_input09, 16/16_input10, 16/16_input11, 16/16_input12, 16/16_input13, 16/16_input14, 16/16_input15, 16/16_input16, 16/16_input17, 16/16_input18, 16/16_input19, 16/16_input20, 16/16_input21, 16/16_input22, 16/16_input23, 16/16_input24, 16/16_input64, 16/16_input65, 16/16_input66, 16/16_input67, 16/16_sample2, 30/30_input25, 30/30_input26, 30/30_input27, 30/30_input28, 30/30_input29, 30/30_input30, 30/30_input31, 30/30_input32, 30/30_input33, 30/30_input34, 30/30_input35, 30/30_input36, 30/30_input37, 30/30_input38, 30/30_input39, 30/30_input40, 30/30_input41, 30/30_input42, 30/30_input43, 30/30_input44, 30/30_input68, 30/30_input69, 50/50_input45, 50/50_input46, 50/50_input47, 50/50_input48, 50/50_input49, 50/50_input50, 50/50_input51, 50/50_input52, 50/50_input53, 50/50_input54, 50/50_input55, 50/50_input56, 50/50_input57, 50/50_input58, 50/50_input59, 50/50_input60, 50/50_input61, 50/50_input62, 50/50_input63, 50/50_input70, 50/50_input71, 50/50_input72, 50/50_input73
Case Name Status Exec Time Memory
04/04_input00 TLE 2104 ms 3316 KB
04/04_input01 TLE 2103 ms 3316 KB
04/04_input02 TLE 2104 ms 3316 KB
04/04_input03 TLE 2103 ms 3316 KB
04/04_input04 TLE 2103 ms 3316 KB
04/04_input05 TLE 2103 ms 3316 KB
04/04_input06 TLE 2103 ms 3316 KB
04/04_sample1 TLE 2104 ms 3316 KB
16/16_input05 TLE 2104 ms 3316 KB
16/16_input06 TLE 2103 ms 3316 KB
16/16_input07 TLE 2104 ms 3316 KB
16/16_input08 TLE 2104 ms 3316 KB
16/16_input09 TLE 2104 ms 3316 KB
16/16_input10 TLE 2103 ms 3316 KB
16/16_input11 TLE 2103 ms 3316 KB
16/16_input12 TLE 2104 ms 3316 KB
16/16_input13 TLE 2103 ms 3316 KB
16/16_input14 TLE 2103 ms 3316 KB
16/16_input15 TLE 2104 ms 3316 KB
16/16_input16 TLE 2103 ms 3316 KB
16/16_input17 TLE 2104 ms 3316 KB
16/16_input18 TLE 2103 ms 3316 KB
16/16_input19 TLE 2104 ms 3316 KB
16/16_input20 TLE 2104 ms 3316 KB
16/16_input21 TLE 2104 ms 3316 KB
16/16_input22 TLE 2103 ms 3316 KB
16/16_input23 TLE 2103 ms 3316 KB
16/16_input24 TLE 2103 ms 3316 KB
16/16_input64 TLE 2104 ms 3316 KB
16/16_input65 TLE 2103 ms 3316 KB
16/16_input66 TLE 2103 ms 3192 KB
16/16_input67 TLE 2104 ms 3316 KB
16/16_sample2 TLE 2103 ms 3316 KB
30/30_input25 TLE 2104 ms 3316 KB
30/30_input26 TLE 2103 ms 3316 KB
30/30_input27 TLE 2104 ms 3316 KB
30/30_input28 TLE 2103 ms 3316 KB
30/30_input29 TLE 2104 ms 3316 KB
30/30_input30 TLE 2103 ms 3316 KB
30/30_input31 TLE 2104 ms 3316 KB
30/30_input32 TLE 2103 ms 3316 KB
30/30_input33 TLE 2103 ms 3316 KB
30/30_input34 TLE 2103 ms 3316 KB
30/30_input35 TLE 2104 ms 3316 KB
30/30_input36 TLE 2103 ms 3316 KB
30/30_input37 TLE 2103 ms 3316 KB
30/30_input38 TLE 2104 ms 3316 KB
30/30_input39 TLE 2104 ms 3316 KB
30/30_input40 TLE 2103 ms 3316 KB
30/30_input41 TLE 2103 ms 3316 KB
30/30_input42 TLE 2104 ms 3316 KB
30/30_input43 TLE 2103 ms 3316 KB
30/30_input44 TLE 2104 ms 3316 KB
30/30_input68 TLE 2103 ms 3316 KB
30/30_input69 TLE 2104 ms 3316 KB
50/50_input45 TLE 2104 ms 3316 KB
50/50_input46 TLE 2103 ms 3316 KB
50/50_input47 TLE 2104 ms 3316 KB
50/50_input48 TLE 2103 ms 3316 KB
50/50_input49 TLE 2103 ms 3316 KB
50/50_input50 TLE 2104 ms 3316 KB
50/50_input51 TLE 2104 ms 3316 KB
50/50_input52 TLE 2103 ms 3316 KB
50/50_input53 TLE 2104 ms 3316 KB
50/50_input54 TLE 2104 ms 3316 KB
50/50_input55 TLE 2103 ms 3316 KB
50/50_input56 TLE 2104 ms 3316 KB
50/50_input57 TLE 2104 ms 3316 KB
50/50_input58 TLE 2103 ms 3316 KB
50/50_input59 TLE 2103 ms 3316 KB
50/50_input60 TLE 2104 ms 3316 KB
50/50_input61 TLE 2103 ms 3316 KB
50/50_input62 TLE 2104 ms 3316 KB
50/50_input63 TLE 2103 ms 3316 KB
50/50_input70 TLE 2104 ms 3316 KB
50/50_input71 TLE 2103 ms 3316 KB
50/50_input72 TLE 2103 ms 3316 KB
50/50_input73 TLE 2103 ms 3316 KB