題目975 關於521

已AC代碼:

 
#include<cstdio>
#include<iostream>
using namespace std;
int t[1000000]={0},f[1000000]={0};
void detection(int i, int b[])
{
    int r[10], j=0;
    int a=0, d=0, c=0;
    for(; i!=0; i/=10)
    {
        r[j]=i%10;
        j++;
        if(i%10==5)
            a++;
        if(i%10==2)
            d++;
        if(i%10==1)
            c++;
    }
    if(a&&d&&c)
        b[0]=1;
    else
        b[0]=0;
    b[1]=0;
    for(int i=0; i<j-2; i++)
    {
        if(r[i]==1&&r[i+1]==2&&r[i+2]==5)
            b[1]=1;
    }
}
int main()
{
    int a, b, z[2], j=0, k=0;
    int cont=1;
    for(int i=125; i<1000000; i++)
    {
        detection(i, z);
        if(z[0])
        {
            t[i]=j+1;
            j=t[i];
        }
        else
            t[i]=j;
        if(z[1])
        {
            f[i]=k+1;
            k=f[i];
        }
        else
            f[i]=k;
    }
    while((scanf("%d%d", &a, &b)) != EOF)
    {
        printf("Case %d:%d %d\n", cont++, t[b]-t[a-1], f[b]-f[a-1]);
    }
    return 0;
}
        


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章