还是比较水的一题
枚举+KMP
+++++++++++++++++++++++++++++++源程序+++++++++++++++++++++++++++++++
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; const int maxn=100001; char str[maxn]; int l,i,j=1,k,t; void init(){ scanf("%d/n",&l); for(i=0;gets(str+i);i+=72); i=0; } void work(){ while(i<l&&j<l&&k<l){ t=str[(i+k)>=l?i+k-l:i+k]-str[(j+k)>=l?j+k-l:j+k]; if(!t)k++; else{ if(t>0)i+=k+1; else j+=k+1; if(i==j)j++; k=0; } } } void print(){ printf("%d/n",i<j?i:j); } int main(){ freopen("hidden.in","r",stdin); freopen("hidden.out","w",stdout); init(); work(); print(); return 0; }