Pagini recente » Cod sursa (job #1205522) | Cod sursa (job #239393)
Cod sursa(job #239393)
#include<stdio.h>
int a,b,pi[30011],v[30011],i,n;
void prefix(){
int q=0;
pi[1]=0;
for(i=2;i<=n;i++){
while(q && v[q+1]!=v[i]) q=pi[q];
if(v[q+1] == v[i]) q++;
pi[i]=q;
}
}
int main(){
FILE *f=fopen("reguli.in","r");
FILE *g=fopen("reguli.out","w");
fscanf(f,"%d",&n);
fscanf(f,"%d",&a);
for(i=1;i<n;i++){
fscanf(f,"%d",&b);
v[i]=b-a;
a=b;
}
n--;
prefix();
int j;
for(i=1;i<=n;i++){
if(pi[n] == n-i){
fprintf(g,"%d\n",i);
for(j=1;j<=i;j++)
fprintf(g,"%d\n",v[j]);
break;
}
}
fclose(f);
fclose(g);
return 0;
}