Bahosain and Digits

来源:互联网 发布:淘宝帐号登录记录 编辑:程序博客网 时间:2024/04/29 03:20
#include<stdio.h>#include<string.h>#include<math.h>#include<queue>#include<vector>#include<iostream>#include<string>#include<set>#include<map>#include<algorithm>using namespace std;#pragma comment(linker, "/STACK:1024000000,1024000000")#define nn 260#define LL long long#define ULL unsiged long long#define mod 0x7fffffff#define inf oxfffffffffff#define lson l,mid,rt<<1#define rson mid+1,r,rt<<1|1//        ((`'-"` `""-'`))//         ) -  -  (//        /  (o _ o)  \//        \  ( 0 )  ///       _'-.._ '=' _..-'_//      /`;#'#'#. -. #'#'#;`\//      \_))   '#'   ((_///      #.  ☆ ☆ ☆  .#//      '#.  求 A C!  .#'//       /'#.     .#'\//       _\\'#.   .#'//_//       (((___)'#'(___)))int a[nn],len,f[nn];int calc(int k)//验证答案{    memset(f,0,sizeof(f));    int sum=0;    bool fuck;    for(int i=0;i<10;i++)//枚举最终整个序列的值    {        sum=0;        for(int j=0;j+k<=len;j++)        {            f[j]=(i-(a[j]+sum)%10+20)%10;            sum+=f[j];            if(j-k+1>=0)                sum-=f[j-k+1];        }        fuck=false;        for(int j=len-k+1;j<len;j++)        {            if((a[j]+sum)%10!=i)            {                fuck=true;                break;            }            if(j-k+1>=0)                sum-=f[j-k+1];        }        if(!fuck) return k;    }    return -1;}int main(){    int t;    scanf("%d",&t);    while(t--)    {        char s[nn];        scanf("%s",s);        len=strlen(s);        for(int i=0;i<len;i++)            a[i]=s[i]-'0';        for(int k=len;k>=1;k--)//枚举答案        {            int v=calc(k);            if(v!=-1)            {                printf("%d\n",k);                break;            }        }    }    return 0;}


0 0