Pagini recente » Cod sursa (job #203979) | Cod sursa (job #1716638) | Cod sursa (job #882606) | Cod sursa (job #898068) | Cod sursa (job #241468)
Cod sursa(job #241468)
#include<stdio.h>
long long a,b,pi[30011],v[30011],i,n;
void prefix(){
long long 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,"%lld",&n);
fscanf(f,"%lld",&a);
for(i=1;i<n;i++){
fscanf(f,"%lld",&b);
v[i]=b-a;
a=b;
}
n--;
prefix();
long long j;
for(i=1;i<=n;i++){
if(pi[n] == n-i){
fprintf(g,"%lld\n",i);
for(j=1;j<=i;j++)
fprintf(g,"%lld\n",v[j]);
break;
}
}
fclose(f);
fclose(g);
return 0;
}