Submission #8873780


Source Code Expand

import sys
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines

from fractions import gcd

N,X,D = map(int,read().split())

if D == 0:
    if X == 0:
        print(1)
    else:
        print(N+1)
    exit()

g = gcd(X,D)
X //= g; D //= g
if D < 0:
    X,D = -X,-D

def F(d):
    # Xの個数 = d mod Dのとき
    event = []
    for n in range(d,N+1,D):
        # Xがn個
        low = X * n // D + n * (n-1) // 2
        high = X * n // D + n * (N+N-n-1) // 2
        event.append((low,0))
        event.append((high,1))
    event.sort()
    overlap = 0
    left_end = 0
    cnt = 0
    for x,t in event:
        if not t:
            if not overlap:
                left_end = x
            overlap += 1
        else:
            overlap -= 1
            if not overlap:
                cnt += x - left_end + 1
    return cnt

answer = sum(F(d) for d in range(min(D,N+1)))
print(answer)

Submission Info

Submission Time
Task F - Sum Difference
User maspy
Language Python (3.4.3)
Score 600
Code Size 989 Byte
Status AC
Exec Time 520 ms
Memory 49752 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 51
Set Name Test Cases
Sample s1.txt, s2.txt, s3.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, s1.txt, s2.txt, s3.txt
Case Name Status Exec Time Memory
01.txt AC 36 ms 5072 KiB
02.txt AC 35 ms 5072 KiB
03.txt AC 35 ms 5072 KiB
04.txt AC 35 ms 5072 KiB
05.txt AC 35 ms 5072 KiB
06.txt AC 36 ms 5072 KiB
07.txt AC 35 ms 5072 KiB
08.txt AC 35 ms 5072 KiB
09.txt AC 35 ms 5072 KiB
10.txt AC 35 ms 5072 KiB
11.txt AC 35 ms 5072 KiB
12.txt AC 35 ms 5072 KiB
13.txt AC 35 ms 5072 KiB
14.txt AC 35 ms 5072 KiB
15.txt AC 35 ms 5072 KiB
16.txt AC 35 ms 5072 KiB
17.txt AC 35 ms 5072 KiB
18.txt AC 36 ms 5072 KiB
19.txt AC 35 ms 5072 KiB
20.txt AC 35 ms 5072 KiB
21.txt AC 36 ms 5072 KiB
22.txt AC 36 ms 5072 KiB
23.txt AC 365 ms 5072 KiB
24.txt AC 378 ms 5072 KiB
25.txt AC 322 ms 5072 KiB
26.txt AC 418 ms 5072 KiB
27.txt AC 308 ms 5072 KiB
28.txt AC 520 ms 5072 KiB
29.txt AC 493 ms 5072 KiB
30.txt AC 516 ms 5072 KiB
31.txt AC 386 ms 5072 KiB
32.txt AC 339 ms 5072 KiB
33.txt AC 319 ms 5108 KiB
34.txt AC 305 ms 5108 KiB
35.txt AC 332 ms 6260 KiB
36.txt AC 357 ms 49752 KiB
37.txt AC 349 ms 12788 KiB
38.txt AC 358 ms 16244 KiB
39.txt AC 373 ms 7188 KiB
40.txt AC 372 ms 47940 KiB
41.txt AC 339 ms 13940 KiB
42.txt AC 346 ms 7264 KiB
43.txt AC 339 ms 12508 KiB
44.txt AC 356 ms 46936 KiB
45.txt AC 345 ms 8660 KiB
46.txt AC 478 ms 5072 KiB
47.txt AC 492 ms 5072 KiB
48.txt AC 36 ms 5072 KiB
s1.txt AC 35 ms 5072 KiB
s2.txt AC 35 ms 5072 KiB
s3.txt AC 36 ms 5072 KiB