結果
問題 | No.2247 01 ZigZag |
ユーザー | publfl2 |
提出日時 | 2023-03-17 21:36:52 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 14 ms / 2,000 ms |
コード長 | 830 bytes |
コンパイル時間 | 298 ms |
コンパイル使用メモリ | 49,280 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-18 16:05:52 |
合計ジャッジ時間 | 1,634 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 50 |
ソースコード
#include <stdio.h> #include <vector> std::vector<int> ans; int main() { int a,b,c; scanf("%d%d%d",&a,&b,&c); if(c==0) { if(a==0) { for(int i=1;i<=b;i++) printf("1"); } else if(b==0) { for(int i=1;i<=a;i++) printf("0"); } else printf("-1"); return 0; } int d; int e = a<b?a:b; if(a==b) d = 2*a-1; else d = 2*e; if(c>d) { printf("-1"); return 0; } if(a<b && c==2*a) { for(int i=1;i<=a;i++) printf("10"); for(int i=1;i<=b-a;i++) printf("1"); } else { for(int i=0;i<=c;i++) { if(i%2==0) ans.push_back(0), a--; else ans.push_back(1), b--; } if(ans.back()==1) { while(b--) ans.push_back(1); } else { ans.pop_back(); while(b--) ans.push_back(1); ans.push_back(0); } while(a--) printf("0"); for(int i=0;i<ans.size();i++) printf("%d",ans[i]); } }