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 |
|
|
| 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 |