結果
問題 | No.1186 長方形の敷き詰め |
ユーザー | googol_S0 |
提出日時 | 2020-08-22 18:31:32 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 72 ms / 2,000 ms |
コード長 | 1,704 bytes |
コンパイル時間 | 220 ms |
コンパイル使用メモリ | 81,792 KB |
実行使用メモリ | 66,176 KB |
最終ジャッジ日時 | 2024-10-15 12:06:23 |
合計ジャッジ時間 | 2,728 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 42 ms
52,352 KB |
testcase_01 | AC | 42 ms
52,352 KB |
testcase_02 | AC | 72 ms
65,664 KB |
testcase_03 | AC | 42 ms
52,352 KB |
testcase_04 | AC | 42 ms
52,352 KB |
testcase_05 | AC | 43 ms
52,480 KB |
testcase_06 | AC | 43 ms
52,480 KB |
testcase_07 | AC | 43 ms
52,224 KB |
testcase_08 | AC | 43 ms
52,224 KB |
testcase_09 | AC | 43 ms
52,608 KB |
testcase_10 | AC | 42 ms
52,352 KB |
testcase_11 | AC | 46 ms
58,240 KB |
testcase_12 | AC | 46 ms
58,112 KB |
testcase_13 | AC | 46 ms
57,856 KB |
testcase_14 | AC | 47 ms
57,984 KB |
testcase_15 | AC | 47 ms
58,112 KB |
testcase_16 | AC | 47 ms
57,984 KB |
testcase_17 | AC | 55 ms
60,416 KB |
testcase_18 | AC | 64 ms
63,488 KB |
testcase_19 | AC | 67 ms
64,000 KB |
testcase_20 | AC | 69 ms
64,640 KB |
testcase_21 | AC | 63 ms
62,848 KB |
testcase_22 | AC | 72 ms
66,176 KB |
testcase_23 | AC | 62 ms
63,232 KB |
testcase_24 | AC | 72 ms
66,048 KB |
testcase_25 | AC | 64 ms
62,976 KB |
testcase_26 | AC | 63 ms
62,592 KB |
ソースコード
from bisect import * def solve1182(): print('kaage') def solve1183(): N=int(input()) A=list(map(int,input().split())) B=list(map(int,input().split())) for i in range(N): A[i]^=B[i] P=A[0] for i in range(N-1): if A[i]==0 and A[i+1]==1: P+=1 print(P) def solve1184(): N,L=map(int,input().split()) print(pow(2,(N+L-1)//L,998244353)-1) def solve1185(): N=int(input()) i=0 r=(1<<20) P=-4 j=0 k=0 while(i<r): j=i k=0 for l in range(10): k+=((j&3)*3*(10**l)) j>>=2 if N>=k: P+=1 else: break i+=1 for i in range(10): for j in range(10): if i%3 and j%3 and (i+j)%3==0: if i*10+j<=N: P+=1 print(P) def solve1186(): N,M=map(int,input().split()) if N==1: print(1) exit() mod=998244353 DP=[0]*(M+1) DP[0]=1 for i in range(M): DP[i+1]=(DP[i]+DP[i+1])%mod if i+N<=M: DP[i+N]=DP[i] print(DP[-1]) def solve1187(): L,R=0,1000 X=0 S=0 T=0 while R-L>1: X=(L+R)//2 print('?',X) S=input() print('?',X+1) T=input() if T=='out' and S=='out': R=X elif S=='safe' and T=='out': L=X else: L=X+1 print('?',R) if input()=='out': print(L) else: print(R) def solve1188(): def LIS(A): N=len(A) R=[] INF=10**17 DP=[INF]*(N+1) DP[0]=-INF for i in range(N): R.append(bisect_left(DP,A[i])) DP[R[i]]=A[i] return R N=int(input()) A=list(map(int,input().split())) B=A[::-1] C=[-A[i] for i in range(N)] D=C[::-1] A=LIS(A) B=LIS(B) C=LIS(C) D=LIS(D) print(max([max(min(A[i],B[-i-1]),min(C[i],D[-1-i])) for i in range(N)])-1) solve1186()