You are given three integers
a,
b and
x. Your task is to construct a binary string
s of length
n=a+b such that there are exactly
a zeroes, exactly
b ones and exactly
x indices
i (where
1≤i<n) such that
si≠si+1
such that
1≤i<n and
si≠si+1 (
i=1,2,3,4). For the string "
111001" there are two such indices
i (
i=3,5
Note
. It is guaranteed that the answer always exists.
For example, for the string "01010" there are four indices i
).
Recall that binary string is a non-empty sequence of characters where each character is either 0 or 1.
InputThe first line of the input contains three integers a
, b and x ( 1≤a,b≤100,1≤x<a+b).
OutputPrint only one string s
, where sis any binary string satisfying conditions described above. It is guaranteed that the answer always exists.
Examples
Input
2 2 1
Output
1100
Input
3 3 3
Output
101100
Input
5 3 6
Output
01010100
All possible answers for the first example:
- 1100;
- 0011.
All possible answers for the second example:
- 110100;
- 101100;
- 110010;
- 100110;
- 011001;
- 001101;
- 010011;
- 001011.
AC代码(分情况讨论)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b, x, i, n;
while(scanf("%d %d %d",&a, &b, &x)!=EOF)
{
n = x;
if(x%2==0)
{
n = n/2;
if(a>=b)
{
for(i = 0;i<n-1;i++)
{
printf("01");
a--;
b--;
}
printf("0");
a--;
for(i = 0;i<b;i++)
printf("1");
for(i = 0;i<a;i++)
printf("0");
printf("\n");
}
else
{
for(i = 0;i<n-1;i++)
{
printf("10");
a--;
b--;
}
printf("1");
b--;
for(i = 0;i<a;i++)
printf("0");
for(i = 0;i<b;i++)
printf("1");
printf("\n");
}
}
else
{
n = n/2;
if(a>=b)
{
for(i = 0;i<n;i++)
{
printf("01");
a--;
b--;
}
for(i = 0;i<a;i++)
printf("0");
for(i = 0;i<b;i++)
printf("1");
printf("\n");
}
else
{
for(i = 0;i<n;i++)
{
printf("10");
a--;
b--;
}
for(i = 0;i<b;i++)
{
printf("1");
}
for(i = 0;i<a;i++)
printf("0");
printf("\n");
}
}
}
return 0;
}