結果
問題 | No.2247 01 ZigZag |
ユーザー |
|
提出日時 | 2023-03-17 22:03:11 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 7 ms / 2,000 ms |
コード長 | 2,169 bytes |
コンパイル時間 | 1,688 ms |
コンパイル使用メモリ | 133,440 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-18 16:09:41 |
合計ジャッジ時間 | 2,948 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 50 |
ソースコード
#include <iostream>#include <algorithm>#include <vector>#include <deque>#include <queue>#include <set>#include <map>#include <limits>#include <cmath>#include <iomanip>#include <functional>#include <random>#include <set>#include <atcoder/string>#include <unordered_map>#include <climits>#include <atcoder/lazysegtree>using namespace std;using ll = long long;using namespace atcoder;int solve(){ll N,M,K;cin >> N >> M >> K;if (2 *min(N,M) - 1 + (N != M) < K || (K == 0 && N > 0 && M > 0)){cout << -1 << endl;}else{vector<pair<char,ll>> runlength;if (K < 2 *min(N,M) - 1 + (N != M) || N >= M){runlength.push_back({'0',1});N--;for(int i = 0;i < K;i++){if (i % 2 == 0){runlength.push_back({'1',1});M--;}else{runlength.push_back({'0',1});N--;}}runlength[0].second += N;if (runlength[runlength.size()-1].first == '1'){runlength[runlength.size()-1].second += M;}else{runlength[runlength.size()-2].second += M;}}else{runlength.push_back({'1',1});M--;for(int i = 0;i < K;i++){if (i % 2 == 1){runlength.push_back({'1',1});M--;}else{runlength.push_back({'0',1});N--;}}if (runlength[runlength.size()-1].first == '1'){runlength[runlength.size()-1].second += M;}else{runlength[runlength.size()-2].second += M;}runlength[1].second += N;}for(auto p:runlength){for(int i = 0;i < p.second;i++){cout << p.first;}}cout << endl;}return 0;}int main(){// ll T;// cin >> T;// while (T--)// {solve();// }// cout << flush;return 0;}