• CF12B Correct Solution?


    CF12B Correct Solution?

    洛谷传送门

    题目描述(舍弃各种乱七八糟的故事)

    给定一个数NN,要求把NN的各个数位打乱,要求组成一个可能的,最小的数(最小数有可能含有前导00)。现在已经有一个“最小数”,请你判断这个“最小数”是不是最小数。

    第一行输入n不含前导0。
    第二行输入的假定的最小数可能含有前导0。 题目要求排序后的最小数不含前导0。

    输入格式

    两行。 第一行是给定的数NN。 第二行是假定的NN重组的“最小数”。

    输出格式

    一行。 如果输入的最小数就是NN重组的最小数,输出“OK”。 否则输出“WRONG_ANSWER”。

    Translated by LiM_817


    题解:

    依题意模拟即可。

    代码:

    #include<cstdio>
    #include<cstring>
    using namespace std;
    char a1[20],a2[20];
    int cnt1[11],cnt2[11];
    int ans[20],tot;
    int main()
    {
        // freopen("rhodes.in","r",stdin);
        // freopen("rhodes.out","w",stdout);
        scanf("%s%s",a1+1,a2+1);
        int len1=strlen(a1+1);
        int len2=strlen(a2+1);
        if(len1!=len2)
        {
            puts("WRONG_ANSWER");
            return 0;
        }
        if(a1[1]=='0'&&a2[1]=='0')
        {
            puts("OK");
            return 0;
        }
        if(a2[1]=='0')
        {
            puts("WRONG_ANSWER");
            return 0;
        }
        for(int i=1;i<=len1;i++)
        {
            int t1=a1[i]-'0';
            int t2=a2[i]-'0';
            cnt1[t1]++;
            cnt2[t2]++;
        }
        for(int i=0;i<=9;i++)
            if(cnt1[i]!=cnt2[i])
            {
                puts("WRONG_ANSWER");
                return 0;
            }
        for(int i=1;i<=9;i++)
            if(cnt1[i])
            {
                ans[++tot]=i;
                cnt1[i]--;
                break;
            }
        for(int i=1;i<=cnt1[0];i++)
            ans[++tot]=0;
        for(int i=1;i<=9;i++)
            if(cnt1[i])
                for(int j=1;j<=cnt1[i];j++)
                    ans[++tot]=i;
        for(int i=1;i<=tot;i++)
            if(ans[i]!=(a2[i]-'0'))
            {
                puts("WRONG_ANSWER");
                return 0;
            }
        puts("OK");
        return 0;
    }
    
  • 相关阅读:
    Linux下查看网卡驱动和版本信息
    HTML <!--...--> 标签
    linux物理网卡检测命令mii-tool
    Git错误non-fast-forward后的冲突解决
    ubuntu上解决访问github慢的方法
    右侧添加悬浮打赏功能
    VSCode 预览 .md 文件
    Matlab绘制三维曲面(以二维高斯函数为例)
    matlab的三维绘图和四维绘图
    ubuntu查看文件和文件夹大小
  • 原文地址:https://www.cnblogs.com/fusiwei/p/14046576.html
Copyright © 2020-2023  润新知