zoukankan      html  css  js  c++  java
  • PAT-GPLT L1-033

    题目链接:https://www.patest.cn/contests/gplt/L1-033

    时间限制
    400 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    陈越

    以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。

    输入格式:

    输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。

    输出格式:

    根据输入,输出x和能达到要求的年份。数字间以1个空格分隔,行首尾不得有多余空格。年份要按4位输出。注意:所谓“n个数字都不相同”是指不同的数字正好是n个。如“2013”被视为满足“4位数字都不同”的条件,但不被视为满足2位或3位数字不同的条件。

    输入样例1:
    1988 4
    
    输出样例1:
    25 2013
    
    输入样例2:
    1 2
    
    输出样例2:
    0 0001

    AC代码:

    #include<bits/stdc++.h>
    using namespace std;
    
    int year[4000][5];
    void init()
    {
        for(int i=1;i<=4000;i++)
        {
            int tmp=i,cnt=4;
            while(tmp)
            {
                year[i][cnt--]=tmp%10;
                tmp/=10;
            }
            while(cnt>=1) year[i][cnt--]=0;
            //printf("%d%d%d%d
    ",year[i][1],year[i][2],year[i][3],year[i][4]);
        }
    }
    
    int main()
    {
        init();
        int y,n;
        scanf("%d%d",&y,&n);
    
        int sum,appear[10];
        for(int cnt=0;;cnt++)
        {
            memset(appear,0,sizeof(appear));
            for(int i=1;i<=4;i++) appear[ year[y+cnt][i] ] = 1;
    
            sum=0;
            for(int i=0;i<=9;i++) sum+=appear[i];
    
            if(sum==n)
            {
                printf("%d ",cnt);
                printf("%d%d%d%d
    ",year[y+cnt][1],year[y+cnt][2],year[y+cnt][3],year[y+cnt][4]);
                break;
            }
        }
    }

    注意:输入最大到3000,但是3000之后n==1要到3333才出现,n==3到3001出现,n==4到3012出现,因此保险起见,MAX开到4000,反正时间完全够用。

  • 相关阅读:
    实验4:开源控制器实践——OpenDaylight
    实验3:OpenFlow协议分析实践
    SDN实验2:Open vSwitch虚拟交换机实践
    实验1:SDN拓扑实践
    面向对象程序设计2020寒假作业3
    自我介绍
    Python进程和线程
    同步 Github fork 出来的分支
    Git指令中fetch和pull的区别
    Git多人协作维护仓库简单流程
  • 原文地址:https://www.cnblogs.com/dilthey/p/8638665.html
Copyright © 2011-2022 走看看