AIM Tech Round 3 (Div. 1)-B. Recover the String
2016-10-25 21:40
471 查看
原题链接
B. Recover the String
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
For each string s consisting of characters '0'
and '1' one can define four integers a00, a01, a10 and a11,
where axy is the number
of subsequences of length 2 of the string s equal
to the sequence {x, y}.
In these problem you are given four integers a00, a01, a10, a11 and
have to find any non-empty string s that matches them, or determine that there is no such string. One can prove that if at least one answer exists,
there exists an answer of length no more than 1 000 000.
Input
The only line of the input contains four non-negative integers a00, a01, a10 and a11.
Each of them doesn't exceed 109.
Output
If there exists a non-empty string that matches four integers from the input, print it in the only line of the output. Otherwise, print "Impossible".
The length of your answer must not exceed 1 000 000.
Examples
input
output
input
output
B. Recover the String
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
For each string s consisting of characters '0'
and '1' one can define four integers a00, a01, a10 and a11,
where axy is the number
of subsequences of length 2 of the string s equal
to the sequence {x, y}.
In these problem you are given four integers a00, a01, a10, a11 and
have to find any non-empty string s that matches them, or determine that there is no such string. One can prove that if at least one answer exists,
there exists an answer of length no more than 1 000 000.
Input
The only line of the input contains four non-negative integers a00, a01, a10 and a11.
Each of them doesn't exceed 109.
Output
If there exists a non-empty string that matches four integers from the input, print it in the only line of the output. Otherwise, print "Impossible".
The length of your answer must not exceed 1 000 000.
Examples
input
1 2 3 4
output
Impossible
input
1 2 2 1
output
0110
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <map> #include <vector> #include <queue> #include <cmath> #define maxn 1000005 #define MOD 1000000007 #define INF 1e9 using namespace std; typedef long long ll; char str[maxn]; int main(){ // freopen("in.txt", "r", stdin); ll a, b, c, d; scanf("%I64d%I64d%I64d%I64d", &a, &b, &c, &d); a *= 2; d *= 2; ll k1 = sqrt(a); ll k2 = sqrt(d); if(k1 * (k1 + 1) != a || k2 * (k2 + 1) != d){ puts("Impossible"); return 0; } if(a == 0 && b == 0 && c == 0 && d == 0){ puts("0"); return 0; } if(a == 0 && b == 0 && c == 0 && d){ for(int i = 1; i <= k2 + 1; i++) str[i] = '1'; puts(str+1); return 0; } if(a && b == 0 && c == 0 && d == 0){ for(int i = 1; i <= k1 + 1; i++) str[i] = '0'; puts(str+1); return 0; } if((k1+1) * (k2+1) != b + c){ puts("Impossible"); return 0; } k1++, k2++; ll cc = b / k2, e = b % k2; for(int i = 1; i <= k1 + k2; i++) str[i] = '0'; for(int i = cc + 1; i <= cc + k2; i++) str[i] = '1'; if(e){ str[cc+k2+1] = '1'; str[cc+k2+1-e] = '0'; } puts(str+1); return 0; }
相关文章推荐
- AIM Tech Round 3 (Div. 2)D. Recover the String(贪心+字符串)
- CF 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. 2) -- D. Recover the String (思路题目--构造字符串)
- 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. 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
- 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
- AIM Tech Round (Div. 2) C. Graph and String(二分图染色 | 贪心)