結果
問題 | No.2247 01 ZigZag |
ユーザー |
![]() |
提出日時 | 2023-03-17 21:38:59 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,096 bytes |
コンパイル時間 | 1,901 ms |
コンパイル使用メモリ | 195,324 KB |
最終ジャッジ日時 | 2025-02-11 12:44:13 |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 44 WA * 6 |
ソースコード
#include<bits/stdc++.h>using namespace std;using int64 = long long;int main() {int N, M, K;cin >> N >> M >> K;auto make = [](int N, int M, int K) -> string {string Z="0";--N;while (K > 0) {if (Z.size() & 1) {--M;Z += "1";} else {--N;Z += "0";}if (N < 0 or M < 0) {return "inf";}--K;}string ushi;for(auto& c : Z) {if (c == '0') {while (N > 0) {ushi += "0";--N;}}ushi += c;}string uku;for(int i = (int) ushi.size() - 1; i >= 0; i--) {if (ushi[i] == '1') {while (M > 0) {uku += "1";--M;}}uku += ushi[i];}reverse(uku.begin(), uku.end());if(N > 0 or M > 0) return "inf";return uku;};auto p = make(N, M, K);auto q = make(M, N, K);if(q != "inf") for(auto& z : q) {if (z == '1') z = '0';else z = '1';}p = min(p, q);if(p == "inf") cout << -1 << endl;else cout << p << endl;}