Submission #42158171


Source Code Expand

# import math, heapq, bisect, itertools, functools

# python sample.py < input

def bisect_right(ls, val):
    l, r = 0, len(ls)
    while l < r:
        mid = (l + r) // 2
        if ls[mid][0] <= val:
            l = mid + 1
        else:
            r = mid
    return l

if __name__ == '__main__':
    n = int(input())
    A = [int(i) for i in input().split()]
    pre = []
    time = 0
    for i in range(1, n-1, 2):
        a, b = A[i], A[i+1]
        time += b - a
        pre.append((a, b, time))
    # print(pre)
    q = int(input())
    for _ in range(q):
        l, r = [int(i) for i in input().split()]
        pl = bisect_right(pre, l)
        pr = bisect_right(pre, r)
        # print(l, r, "->", pl, pr)
        ans = 0
        if pr >= 1:
            if pl >= 1:
                ans += pre[pr-1][2] - pre[pl-1][2]
                # print(1, ans)
                ans += max(0, pre[pl-1][1] - l)
                # print(2, ans)
            else:
                ans += pre[pr-1][2]
                # print(2, ans)
            ans -= max(0, pre[pr-1][1] - r)
            # print(3, ans)
        print(ans)

Submission Info

Submission Time
Task D - Sleep Log
User shinever
Language PyPy3 (7.3.0)
Score 450
Code Size 1162 Byte
Status AC
Exec Time 1338 ms
Memory 109992 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 450 / 450
Status
AC × 2
AC × 20
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 02_max_09.txt, 02_max_10.txt, 02_max_11.txt, 02_max_12.txt, 02_max_13.txt, 02_max_14.txt, 02_max_15.txt, 03_edge_16.txt, 03_edge_17.txt, 03_edge_18.txt, 03_edge_19.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 119 ms 62040 KiB
00_sample_01.txt AC 52 ms 62104 KiB
01_random_02.txt AC 119 ms 96284 KiB
01_random_03.txt AC 489 ms 88836 KiB
01_random_04.txt AC 965 ms 100284 KiB
01_random_05.txt AC 340 ms 90576 KiB
01_random_06.txt AC 656 ms 99568 KiB
01_random_07.txt AC 1010 ms 87012 KiB
01_random_08.txt AC 820 ms 97072 KiB
02_max_09.txt AC 1296 ms 109944 KiB
02_max_10.txt AC 1324 ms 109992 KiB
02_max_11.txt AC 1305 ms 109816 KiB
02_max_12.txt AC 1305 ms 109704 KiB
02_max_13.txt AC 1338 ms 109840 KiB
02_max_14.txt AC 1295 ms 109980 KiB
02_max_15.txt AC 1300 ms 109896 KiB
03_edge_16.txt AC 792 ms 76976 KiB
03_edge_17.txt AC 756 ms 76884 KiB
03_edge_18.txt AC 859 ms 109812 KiB
03_edge_19.txt AC 887 ms 109764 KiB