結果
問題 |
No.1584 Stones around Circle Pond
|
ユーザー |
![]() |
提出日時 | 2021-07-02 22:50:41 |
言語 | PyPy3 (7.3.15) |
結果 |
RE
|
実行時間 | - |
コード長 | 881 bytes |
コンパイル時間 | 152 ms |
コンパイル使用メモリ | 82,304 KB |
実行使用メモリ | 74,496 KB |
最終ジャッジ日時 | 2024-06-29 12:43:04 |
合計ジャッジ時間 | 6,473 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 WA * 3 RE * 36 |
ソースコード
N,L=map(int,input().split()) D=list(map(int,input().split())) B=list(map(int,input().split())) for i in range(N): D.append(D[i]+L) X=[[0]*(N*2+1) for i in range(N*2)] for i in range(N*2): for j in range(N*2): X[j][i]=min((D[i]-D[j])%(2*L),(D[j]-D[i])%(2*L)) U=sum(B) V=sum(X[0]) if U%V: print('No') exit() Z=U//V W=[X[i][:] for i in range(N*2)] for i in range(N*2): B[i]-=X[0][i]*Z X[i][N*2]=B[i] for i in range(1,N*2): for j in range(N*2): X[j][i]-=X[j][0] for i in range(N*2): X[0][i]=1 X[0][N*2]=0 p=0 for k in range(N*2): p=X[k][k] for j in range(k,N*2+1): X[k][j]//=p for i in range(N*2): if i!=k: t=X[i][k] for j in range(k,N*2+1): X[i][j]=X[i][j]-t*X[k][j] Y=[max(X[i][N*2],0) for i in range(N*2)] Y[0]-=Z for i in range(N*2): for j in range(N*2): B[j]-=Y[i]*W[j][i] print('Yes' if min(B)==max(B)==0 else 'No')