acm 521521连续问题

小菜看到5,2,1就会特别愤怒,现在他想知道在连续的数中有多少数全部包含了这三个数字。例如12356就算一个,而51111就不算。特别的,如果他看到521三个数连续出现就会特别愤怒。
输入:多组数据测试,一行给定两个数a,b(0>a,b<1000000),表示数字的开始和结束。
输出:一行显示他想要知道的数有几个,然后显示有多少个数字令他特别愤怒。空格隔开。

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include<stdio.h>
int c[1000000]={0},f[1000000]={0};
int main(){
    int b[100]={0};
    int a,d,i,j,Q,W,E,m,w,x,t=1,s,F,X;
    for(i=100;i<1000000;i++){
        s=i;w=0;
        c[i]=c[i-1];
        f[i]=f[i-1];
       while(s){
        b[w]=s%10;
        s=s/10;
        w++;
       }
       Q=0;W=0;E=0;F=0;
      for(s=0;s<w;s++){
         if(b[s]==5)
            Q++;
         if(b[s]==2)
            W++;
         if(b[s]==1)
            E++;
         if(b[s]==1&&b[s+1]==2&&b[s+2]==5){
            F++;
         }
      }
      if(Q!=0&&W!=0&&E!=0){
         c[i]++;
      }
      if(F!=0){
         f[i]++;
       }
    }
    while(scanf("%d %d",&a,&d)!=EOF){
          printf("Case %d:%d %d\n",t++,c[d]-c[a-1],f[d]-f[a-1]);
}
    return 0;
}