Submission #2559563


Source Code Expand

from bisect import bisect
N = int(input())
*A, = map(int, input().split())
N0 = 2**(N-1).bit_length()

data = [i & -i for i in range(N+1)]
def add(k, x):
    while k <= N:
        data[k] += x
        k += k & -k
def get(k):
    s = 0
    while k:
        s += data[k]
        k -= k & -k
    return s
def lower_bound(x):
    w = i = 0
    k = N0
    while k:
        if i+k <= N and w + data[i+k] <= x:
            w += data[i+k]
            i += k
        k >>= 1
    return i+1

B = [None]*N
for i in range(N-1, -1, -1):
    x = lower_bound(i-A[i])
    B[x-1] = i+1
    add(x, -1)

INF = 10**9
C = [INF]*(N+1)
C[0] = 0
for b in B:
    C[bisect(C, b)] = b
print(bisect(C, INF-1)-1)

Submission Info

Submission Time
Task B - リス
User yaketake08
Language Python (3.4.3)
Score 0
Code Size 720 Byte
Status TLE
Exec Time 2105 ms
Memory 37596 KB

Judge Result

Set Name sample all
Score / Max Score 0 / 0 0 / 1
Status
AC × 3
AC × 15
TLE × 9
Set Name Test Cases
sample sample-01.txt, sample-02.txt, sample-03.txt
all sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, sample-01.txt, sample-02.txt, sample-03.txt
Case Name Status Exec Time Memory
01-01.txt AC 18 ms 3188 KB
01-02.txt AC 18 ms 3064 KB
01-03.txt AC 18 ms 3064 KB
01-04.txt AC 18 ms 3064 KB
01-05.txt AC 18 ms 3064 KB
01-06.txt AC 23 ms 3064 KB
01-07.txt AC 30 ms 3188 KB
01-08.txt AC 37 ms 3316 KB
01-09.txt AC 176 ms 5152 KB
01-10.txt TLE 2105 ms 34640 KB
01-11.txt TLE 2105 ms 34124 KB
01-12.txt TLE 2105 ms 35544 KB
01-13.txt TLE 2104 ms 35472 KB
01-14.txt TLE 2105 ms 35476 KB
01-15.txt TLE 2105 ms 35612 KB
01-16.txt TLE 2105 ms 35844 KB
01-17.txt TLE 2104 ms 17524 KB
01-18.txt TLE 2105 ms 37596 KB
sample-01.txt AC 18 ms 3064 KB
sample-02.txt AC 18 ms 3064 KB
sample-03.txt AC 18 ms 3064 KB