Pagini recente » Cod sursa (job #556427) | Cod sursa (job #2168643) | Cod sursa (job #292569) | Cod sursa (job #1032297) | Cod sursa (job #237556)
Cod sursa(job #237556)
#include<stdio.h>
FILE *fin=fopen("reguli.in","r"),
*fout=fopen("reguli.out","w");
int N;
long long a[500005];
int verif(int l){
int c=N/l,r=N%l;
for(int i=N-r+1;i<=N;i++)
if(a[i]!=a[i-N+r])
return 0;
for(int i=1;i<=l;i++)
for(int q=1;q<=c-1;q++)
if(a[i]!=a[l*q+i])
return 0;
return 1;
}
int main(){
fscanf(fin,"%d",&N);
long long x,y;
fscanf(fin,"%lld",&x);
--N;
for(int i=1;i<=N;i++){
fscanf(fin,"%lld",&y);
a[i]=(long long)y-x;
x=y;
}
for(int l=1;l<=N;l++)
if(verif(l)){
fprintf(fout,"%d\n",l);
for(int i=1;i<=l;i++)
fprintf(fout,"%lld\n",a[i]);
break;
}
fclose(fin);
fclose(fout);
return 0;
}