Submission #6364924


Source Code Expand

import sys
input = sys.stdin.readline

"""
後ろから、到達不可能距離の集合を見ていきたい。
集合を持つと厳しいが、最小値だけ持っておけばよい。
"""

N,dist = map(int,input().split())
D = [int(x) for x in input().split()]

# 各ターンの出発位置
start_dist = [dist]
for d in D:
    x = start_dist[-1]
    y = x-d if x > d else d - x
    start_dist.append(x if x < y else y)

ng_dist = [None] * (N+1)
ng_dist[N] = 1

for i,d in enumerate(D[::-1]):
    x = ng_dist[N-i]
    y = x if x <= d//2 else x + d
    ng_dist[N-i-1] = y

input()
Q = [int(x) for x in input().split()]

answer = ['YES' if ng_dist[d] <= start_dist[d-1] else 'NO' for d in Q]

print('\n'.join(answer))

Submission Info

Submission Time
Task E - Alice in linear land
User maspy
Language Python (3.4.3)
Score 900
Code Size 751 Byte
Status AC
Exec Time 809 ms
Memory 106520 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 900 / 900
Status
AC × 3
AC × 14
Set Name Test Cases
Sample 00-00.txt, 00-01.txt, 00-02.txt
All 00-00.txt, 00-01.txt, 00-02.txt, 01-00.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
Case Name Status Exec Time Memory
00-00.txt AC 17 ms 3064 KiB
00-01.txt AC 17 ms 3064 KiB
00-02.txt AC 17 ms 3064 KiB
01-00.txt AC 17 ms 3064 KiB
01-01.txt AC 17 ms 3064 KiB
01-02.txt AC 776 ms 105736 KiB
01-03.txt AC 777 ms 104268 KiB
01-04.txt AC 799 ms 106520 KiB
01-05.txt AC 764 ms 98500 KiB
01-06.txt AC 795 ms 104920 KiB
01-07.txt AC 809 ms 106312 KiB
01-08.txt AC 760 ms 96968 KiB
01-09.txt AC 766 ms 105032 KiB
01-10.txt AC 787 ms 102616 KiB