竞赛讨论区 > 难道是我有什么情况没有考虑到吗?qwq,求大佬求助
头像
diu·
发布于 2019-08-20 12:06
+ 关注

难道是我有什么情况没有考虑到吗?qwq,求大佬求助

为什么感觉我的第二题一点儿问题都没问题呢?


#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int T,num1,num2,len,flag;
string x,ans;
void output(){for(int i = 0;i < len;i++)cout<<ans[i];cout<<endl;}
bool pd()
{
    if(x[0] > '7')
    {
        len++;
        return true;
    }
    int res=len/2+1,sum=0;
    for(int i = 0;i < res;i++)
    {
        if(i != res-1 && x[i] > '7')
        {
            len++;
            return true;
        }
        if(x[i] == '7')
            sum++;
    }
    if(sum == res)
    {
        len++;
        return true;
    }
    return false;
}

void work(int pos)
{
    for(int i = pos;i < len;i++)
    {
        if(num1)
            {ans[i]='4';num1--;}
        else
            ans[i]='7';
    }
}
int main()
{
    cin>>T;
    while(T--)
    {
        num1=0,num2=0,len=0,flag=0;
        cin>>x;
        len=x.length();
        x[len]=0;
        if(len & 1 || pd())
        {
            len++;
            num1=num2=len/2;
            work(0);
            output();
        }
        else
        {
            num1=num2=len/2;
            for(int i = 0;i < len;i++)
            {
                if(flag)
                {
                    work(i);
                    output();
                    break;
                }
                if(num1 && x[i] >= '0' && x[i] < '4')
                {
                    num1--;
                    ans[i]='4';
                    flag=1;
                }
                else if(num1 && x[i] == '4' && x[i+1] < '7')
                {
                    num1--;
                    ans[i]='4';
                }

                if((num2 && x[i] > '4' && x[i] < '7'))
                {
                    num2--;
                    ans[i]='7';
                    flag=1;
                }
                else if(num2 && x[i] == '7' && x[i+1] < '7')
                {
                   num2--;
                   ans[i]='7';
                }
            }
            if(!flag)
                output();
        }
    }
    return 0;
}
求职ing

全部评论

(2) 回帖
加载中...
话题 回帖

等你来战

查看全部

热门推荐