結果
問題 |
No.2247 01 ZigZag
|
ユーザー |
|
提出日時 | 2023-03-21 13:50:21 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 82 ms / 2,000 ms |
コード長 | 843 bytes |
コンパイル時間 | 331 ms |
コンパイル使用メモリ | 81,924 KB |
実行使用メモリ | 89,676 KB |
最終ジャッジ日時 | 2024-09-18 16:16:23 |
合計ジャッジ時間 | 4,537 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 50 |
ソースコード
import sys sys.setrecursionlimit(10**6) def ok(N, M, K): mn = 1 if M > 0 else 0 mx = min(2*M, 2*N+1) return mn <= K <= mx def s(N, M, K, L): if L == 0 and not ok(N, M, K): return None if L == 1 and not ok(M, N, K): return None arr = [L] for i in range(N+M): if N > 0 and ok(N-1, M, K - (L != 0)): arr.append(0) N -= 1 K -= L != 0 L = 0 else: arr.append(1) M -= 1 K -= L != 1 L = 1 return ''.join(map(str, arr)) def main(): N, M, K = map(int, input().split()) A = None if N > 0: A = s(N-1, M, K, 0) if M > 0 and A is None: A = s(N, M-1, K, 1) if A is None: print(-1) else: print(A) if __name__ == '__main__': main()