CF AIM Tech Round 3 (Div. 2) D - Recover the String
2016-09-02 21:37
465 查看
模拟
首先可以求出 0 和 1 的个数
之后按照01 10 的个数贪心安排
细节太多 错的都要哭了
首先可以求出 0 和 1 的个数
之后按照01 10 的个数贪心安排
细节太多 错的都要哭了
#include<bits/stdc++.h> using namespace std; int main(){ int a,b,c,d; while(~scanf("%d %d %d %d",&a,&b,&c,&d)) { int suc = 1; int t1,t2; t1 = sqrt(2*a); t2 = sqrt(2*d); t1 ++; t2 ++; if(t1*(t1-1) != 2*a || t2*(t2-1) != 2*d) suc = 0; if(d == 0) { if(!suc) printf("Impossible\n"); else if(b == 0 && c == 0) { for(int i = 0; i < t1; ++i) printf("0"); printf("\n"); }else if(b+c == t1) { if(t1 == 1) { if(b) printf("01\n"); else printf("10\n"); continue; } int cc = 0; if(cc == b) printf("1"); for(int i = 0; i < t1; ++i) { printf("0"); cc ++; if(cc == b) printf("1"); } printf("\n"); } else printf("Impossible\n"); continue; }else if(a == 0) { if(!suc) printf("Impossible\n"); else if(b == 0 && c == 0) { for(int i = 0; i < t2; ++i) printf("1"); printf("\n"); }else if(b+c == t2) { int cc = 0; if(cc == c) printf("0"); for(int i = 0; i < t2; ++i) { printf("1"); cc ++; if(cc == c) printf("0"); } printf("\n"); } else printf("Impossible\n"); continue; } if(b+c != t1*t2) suc = 0; int num1 = 0, pos1 = 0; num1 = c/t1; pos1 = c%t1; int all = num1 + (pos1 > 0); if(all > t2) suc = 0; if(suc) { for(int i = 0; i < num1; ++i) printf("1"); int cc = t1; for(int i = 0; i < t1; ++i) { cc --; printf("0"); if(cc == pos1 && cc != 0) printf("1"); } for(int i = 0; i < t2-all; ++i) printf("1"); printf("\n"); } else printf("Impossible\n"); } return 0; }
相关文章推荐
- CF AIM Tech Round 3 (Div. 2) D - Recover the String
- AIM Tech Round 3 (Div. 2)D. Recover the String(贪心+字符串)
- AIM Tech Round 3 (Div. 2) D. Recover the String (构造)
- AIM Tech Round 3 (Div. 1) B. Recover the String 构造
- AIM Tech Round 3 (Div. 1)-B. Recover the String
- AIM Tech Round 3 (Div. 2) -- D. Recover the String (思路题目--构造字符串)
- AIM Tech Round 3 (Div. 1) B. Recover the String(构造)
- AIM Tech Round 3 (Div. 1) B. Recover the String 构造
- codeforces AIM Tech Round 3 (Div. 2)D. Recover the String
- AIM Tech Round 3 (Div. 2) -- D. Recover the String (构造字符串)
- AIM Tech Round (Div. 2) C. Graph and String 二分图染色
- AIM Tech Round (Div. 2) C. Graph and String
- AIM Tech Round (Div. 2) C. Graph and String 二分图染色
- AIM Tech Round (Div. 2)C - Graph and String(二分图染色)
- cf#AIM Tech Round -C. Graph and String-贪心/ 二分图染色
- AIM Tech Round (Div. 2)-B. Making a String(贪心)
- AIM Tech Round (Div. 2) C. Graph and String(二分图染色 | 贪心)
- AIM Tech Round (Div. 2) B. Making a String 贪心
- #AIM Tech Round [div2] C. Graph and String 【连通图、染色】
- AIM Tech Round (Div. 2)--B. Making a String