codeforces 1003 Binary String Constructing
我是先构造了 0,1,0,1的情况尝试满足条件 然后再分类讨论的
#includeusing namespace std;inline char gc(){ static char now[1<<16],*S,*T; if (T==S){T=(S=now)+fread(now,1,1<<16,stdin);if (T==S) return EOF;} return *S++;}inline int read(){ int x=0,f=1;char ch=gc(); while(!isdigit(ch)) {if (ch=='-') f=-1;ch=gc();} while(isdigit(ch)) {x=x*10+ch-'0',ch=gc();} return x*f;}const int N=220;int a,b,x,n;deque q;int main(){// freopen("b.in","r",stdin); a=read();b=read();x=read(); n=a+b;q.push_back(0);--a; int now=0,cnt=0; for (int i=2;i<=n;++i){ if(!b||!a) break; ++cnt;now^=1;q.push_back(now); if (i&1) --a;else --b; if (cnt==x) break; } if (cnt==x-2){ q.push_front(1);--b; if (b>0) for (int i=1;i<=b;++i) q.push_back(1); }else{ if(cnt0) for (int i=1;i<=a;++i) q.push_back(0); if (b>0) for (int i=1;i<=b;++i) q.push_front(1); }else{ if (a>0) for (int i=1;i<=a;++i) q.push_front(0); if (b>0) { if (q.back()!=1){ q.pop_back(); for (int i=1;i<=b;++i) q.push_back(1); q.push_back(0); }else for (int i=1;i<=b;++i) q.push_back(1); } }} while(!q.empty()) printf("%d",q.front()),q.pop_front(); return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~