結果
問題 | No.2247 01 ZigZag |
ユーザー |
![]() |
提出日時 | 2023-05-01 12:50:46 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,214 bytes |
コンパイル時間 | 331 ms |
コンパイル使用メモリ | 82,272 KB |
実行使用メモリ | 109,804 KB |
最終ジャッジ日時 | 2024-11-20 12:15:03 |
合計ジャッジ時間 | 9,350 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 16 WA * 34 |
ソースコード
# K=1なら000000111 # K=3なら00000101111 # K=5なら0000010101111 # K=2なら00000111110 # K=4なら000001011110 N, M, K = map(int, input().split()) if N == M: K_max = N*2-1 else: K_max = min(N, M)*2 if K > K_max or K == 0: print(-1) exit() # 後ろから決めていく ans_rev = '' N_remainder = N M_remainder = M K_remainder = K if K_remainder%2 == 1: M_use = M_remainder-(K_remainder-1)//2 ans_rev += '1'*M_use M_remainder -= M_use K_remainder -= 1 elif K_remainder == N*2: M_use = max(0, M_remainder-N) ans_rev += '1'*M_use M_remainder -= M_use K_remainder -= 1 #print(ans_rev, N_remainder, M_remainder, K_remainder) for k in range(K_remainder//2): ans_rev += '0' N_remainder -= 1 M_use = M_remainder-(K_remainder-1)//2 ans_rev += '1'*M_use M_remainder -= M_use K_remainder -= 1 #print(ans_rev, N_remainder, M_remainder, K_remainder) if N_remainder > 0: ans_rev += '0'*N_remainder N_remainder = 0 #print(ans_rev, N_remainder, M_remainder, K_remainder) if M_remainder > 0: ans_rev += '1'*M_remainder M_remainder = 0 #print(ans_rev, N_remainder, M_remainder, K_remainder) print(ans_rev[::-1])