結果
| 問題 | No.1460 Max of Min |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-03-21 16:06:46 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
RE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 869 bytes |
| 記録 | |
| コンパイル時間 | 263 ms |
| コンパイル使用メモリ | 82,300 KB |
| 実行使用メモリ | 79,348 KB |
| 最終ジャッジ日時 | 2024-11-29 09:56:31 |
| 合計ジャッジ時間 | 9,949 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 5 RE * 86 |
ソースコード
INF=10**18;
def op(a,b):
c=[[-INF]*len(b[0])for i in range(len(a))]
for i in range(len(a)):
for j in range(len(b[0])):
c[i][j]=max([min(a[i][k],b[k][j])for k in range(len(b))])
return c
def e(K):
a=[[-INF]*K for i in range(K)]
for i in range(K):
a[i][i]=INF;
return a
def my_pow(a,b):
if b==0:
return e(len(a))
if b%2==1:
return op(my_pow(a,b-1),a)
c=my_pow(a,b//2);
return op(c,c)
K,N=map(int,input().split())
assert 1<=K<=100
assert 0<=N<=INF
A=list(map(int,input().split()))
B=list(map(int,input().split()))
for i in A:
assert -INF<=i<=INF
for i in B:
assert -INF<=i<=INF
a=[[-INF]for i in range(K)]
b=[[-INF]*K for i in range(K)]
for i in range(K):
a[i][0]=A[i]
for i in range(K):
b[K-1][i]=B[i]
for i in range(K-1):
b[i][i+1]=INF
print(op(my_pow(b,N),a)[0][0])