結果
| 問題 |
No.2643 Many Range Sums Problems
|
| コンテスト | |
| ユーザー |
こめだわら
|
| 提出日時 | 2024-02-19 23:31:40 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 1,429 ms / 8,000 ms |
| コード長 | 964 bytes |
| コンパイル時間 | 340 ms |
| コンパイル使用メモリ | 82,168 KB |
| 実行使用メモリ | 100,180 KB |
| 最終ジャッジ日時 | 2024-09-29 03:12:53 |
| 合計ジャッジ時間 | 24,210 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 34 |
ソースコード
N,K=map(int,input().split())
def xx(t):
a=t[0]
b=t[1]
if a==0:
if 0<=b<=K:
return (-10**18,10**18)
else:
return (10**18,-10**18)
if a>0:
l=(-b-1)//a+1
r=(K-b)//a
return (l,r)
if a<0:
a=-a
b=-b
l=(-K-b-1)//a+1
r=(-b)//a
return (l,r)
RX=[tuple(map(int,input().split())) for _ in range(N)]
for i in range(N):
dp=[(0,0) for _ in range(N)]
S=[(0,0) for _ in range(N+1)]
for j in range(N-1,-1,-1):
if i!=j:
dp[j]=((S[RX[j][0]][0]-S[j+1][0]),RX[j][1]+(S[RX[j][0]][1]-S[j+1][1]))
S[j]=(S[j+1][0]+dp[j][0],S[j+1][1]+dp[j][1])
else:
dp[j]=(1,0)
S[j]=(S[j+1][0]+dp[j][0],S[j+1][1]+dp[j][1])
l=-10**18
r=10**18
for j in range(N):
ll,rr=xx(dp[j])
l=max(l,ll)
r=min(r,rr)
if l<=r:
print('Yes')
else:
print('No')
こめだわら