zoukankan      html  css  js  c++  java
  • CodeForces

    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

    . It is guaranteed that the answer always exists.

    For example, for the string "01010" there are four indices i

    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

    ).

    Recall that binary string is a non-empty sequence of characters where each character is either 0 or 1.

    Input

    The first line of the input contains three integers a

    , b and x (1≤a,b≤100,1≤x<a+b)

    .

    Output

    Print only one string s

    , where s

    is 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
    

    Note

    All possible answers for the first example:

    • 1100;
    • 0011.

    All possible answers for the second example:

    • 110100;
    • 101100;
    • 110010;
    • 100110;
    • 011001;
    • 001101;
    • 010011;
    • 001011.
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int a,b,x,n,i,j;
        char s[1010];
        cin>>a>>b>>x;
        n=a+b;
        if(a>b)
        {
            s[1]='0';
            a--;
            for(i=2;i<=x;i++)
            {
                if(s[i-1]=='0')
                {
                    s[i]='1';
                    b--;
                }
                else
                {
                     s[i]='0';
                     a--;
                }
            }
            if(s[x]=='0')
            {
                for(i=x+1;;i++)
                {
                    if(a>0)
                    {
                         s[i]='0';
                         a--;
                    }
                    else
                    {
                        s[i]='1';
                        b--;
                    }
                    if(a==0&&b==0)
                        break;
                }
            }
            else
            {
                for(i=x+1;;i++)
                {
                    if(b>0)
                    {
                         s[i]='1';
                         b--;
                    }
                    else
                    {
                        s[i]='0';
                        a--;
                    }
                    if(a==0&&b==0)
                        break;
                }
            }
        }
  • 相关阅读:
    php 中 return exit break contiue 详解
    C++ Primer学习笔记2--c++标准库中的 vector、string 和 bitset 类型
    asp.net 生成xml文件 与 asp生成xml文件
    android 性能优化
    Internet基础
    华为一道机试
    智能家居趋势
    hdu4708 Rotation Lock Puzzle
    java要在命令行执行eclipse的项目的方法
    linux和windows下安装python拓展包及requirement.txt安装类库
  • 原文地址:https://www.cnblogs.com/jk17211764/p/9677377.html
Copyright © 2011-2022 走看看