【NYOJ】[975]关于521

这里写图片描述

很有意思的一题
运用打表节省时间

但是这题的标准数据有问题
会把考虑两个数哪个大的正确写法判成WA
所以导致了标准数据里有负值-.-

#include<stdio.h>
int x1[1000200]= {0};
int x2[1000200]= {0};
int main() {
//  freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
    for(int i=1; i<1000020; i++) {
        x1[i]=x1[i-1];
        x2[i]=x2[i-1];
        int t=i;
        bool f5=false,f2=false,f1=false,boom=false;
        int lt=99,llt=99;
        while(t) {
            if(t%10==1) {
                f1=true;
            } else if(t%10==2) {
                f2=true;
            } else if(t%10==5) {
                f5=true;
            }
            if(f1&&f2&&f5) {
                x1[i]=x1[i-1]+1;
            }
            if(t%10==5&&lt==2&&llt==1)
                boom=true;
            if(boom) {
                x2[i]=x2[i-1]+1;
                break;
            }
            llt=lt;
            lt=t%10;
            t/=10;
        }
    }
    int n,m,kase=0;
    while(scanf("%d %d",&n,&m)!=EOF) {
//      出题人数据智障 
//      if(n>m) {
//          int t=n;
//          n=m;
//          m=t;
//      }
        printf("Case %d:",++kase);
        printf("%d %d\n",x1[m]-x1[n-1],x2[m]-x2[n-1]);
    }
    return 0;
}

题目地址:【NYOJ】[975]关于521

posted @ 2016-04-09 11:25  BoilTask  阅读(4)  评论(0编辑  收藏  举报