結果
問題 | No.2247 01 ZigZag |
ユーザー |
|
提出日時 | 2023-03-17 22:13:51 |
言語 | Ruby (3.4.1) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 901 bytes |
コンパイル時間 | 191 ms |
コンパイル使用メモリ | 7,424 KB |
実行使用メモリ | 12,800 KB |
最終ジャッジ日時 | 2024-09-18 16:10:43 |
合計ジャッジ時間 | 6,522 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 49 WA * 1 |
コンパイルメッセージ
Syntax OK
ソースコード
def lscan; gets.chomp.split.map(&:to_i); end def solve(n, m, k) if n == 0 return '-1' if k > 0 return '1'*m end if m == 0 return '-1' if k > 0 return '0'*n end # 10001 > 00110 # 10101 k=4 # 01010 k=4 # 0010110 k=4 if k.odd? c = [n,m].min return '-1' if c*2 < k+1 c = (k + 1) / 2 # mid = '01'*c n -= c m -= c return '0'*n + '01'*c + '1'*m end if k.even? if n >= k/2+1 && m >= k/2 # 0010110 c = k/2 # mid = '01'*c n -= c m -= c # tail = '0' n -= 1 return '0'*n + '01'*c + '1'*m + '0' end if n >= k/2 && m >= k/2+1 # 10-0101 c = k/2 # mid = '01'*c n -= c m -= c # head = '1' m -= 1 return '1' + '0'*n + '01'*c + '1'*m end end '-1' end while line = gets puts solve(*line.chomp.split.map(&:to_i)) end