/* Author: 2486 Memory: 4 KB Time: 78 MS Language: GNU G++ 4.9.2 Result: Accepted Public: No Yes */ //ACM反转类提醒的基本模板 #include <cstdio> #include <iostream> #include <string> #include <algorithm> #include <cstring> using namespace std; const int maxn=2e2+60; int T,n; int a[maxn],f[maxn]; int calc(int K){ memset(f,0,sizeof(f)); int sum=0; bool flag; for(int i=0;i<10;i++){ sum=0; for(int j=0;j+K<=n;j++){ f[j]=(i-(a[j]+sum)%10+20)%10; sum+=f[j]; if(j-K+1>=0){ sum-=f[j-K+1]; } } bool flag=false; for(int j=n-K+1;j<n;j++){ if((a[j]+sum)%10!=i){ flag=true; break; } if(j-K+1>=0){ sum-=f[j-K+1]; } } if(!flag)return K; } return -1; } void solve(){ for(int k=n;k>=1;k--){ int v=calc(k); if(v!=-1){ printf("%d\n",v); break; } } } int main(){ scanf("%d",&T); while(T--){ string str; cin>>str; n=str.length(); for(int i=0;i<n;i++){ a[i]=str[i]-'0'; } solve(); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-09 05:54:37