結果
問題 |
No.973 余興
|
ユーザー |
![]() |
提出日時 | 2020-01-18 00:17:28 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 626 ms / 4,000 ms |
コード長 | 1,081 bytes |
コンパイル時間 | 178 ms |
コンパイル使用メモリ | 82,140 KB |
実行使用メモリ | 273,064 KB |
最終ジャッジ日時 | 2024-06-26 02:33:52 |
合計ジャッジ時間 | 21,381 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 54 |
ソースコード
# coding: utf-8 # Your code here! import sys sys.setrecursionlimit(10**6) readline = sys.stdin.readline read = sys.stdin.read #n,m,*d= [int(i) for i in read().split()] #a,t,k = [int(i) for i in readline().split()] n,x,*a = [int(i) for i in read().split()] r = [0]*n l = [0]*n r[-1] = n pt = 0 res = 0 for i in range(n-1): res -= a[i] while pt < n and res+a[pt] <= x: res += a[pt] pt += 1 r[i] = pt pt = n-1 res = 0 for i in range(n-1,0,-1): res -= a[i] while pt >= 0 and res+a[pt] <= x: res += a[pt] pt -= 1 l[i] = pt+1 dp = [[0]*n for _ in range(n)] #for i in dp: print(*i) #for i in dp: print(*i) #print(l,r) for i in range(n-1,-1,-1): j = i while j < n: if dp[i][j] == 0: dp[i][j] = -1 for k in range(l[i],i): dp[k][j] = 1 dp[i][j+1:r[j]] = [1]*(r[j]-(j+1)) j = r[j] else: j += 1 #print(dp) #print(l) #print(r) #for i in dp: print(*i) a = dp[0][-1] if a == 1: print("A") else: print("B")