Pagini recente » Cod sursa (job #2318641) | Cod sursa (job #1783526) | Cod sursa (job #2038446) | Cod sursa (job #2445609) | Cod sursa (job #732936)
Cod sursa(job #732936)
#include<stdio.h>
FILE*f=fopen("reguli.in","r");
FILE*g=fopen("reguli.out","w");
long long v[500003],w[500003];
int n,p[500003];
void prep()
{
int k=0;
for(int i=2;i<=n;++i)
{
while(k&&w[i]!=w[k+1])
k=p[k];
if(w[k+1]==w[i])
++k;
p[i]=k;
}
}
int main()
{
fscanf(f,"%d",&n);
for(int i=1;i<=n;++i)
{
fscanf(f,"%lld",&v[i]);
w[i-1]=v[i]-v[i-1];
}
prep();
int x=n-p[n-1]-1;
fprintf(g,"%d\n",x);
for(int i=1;i<=x;++i)
fprintf(g,"%lld\n",w[i]);
fclose(f);
fclose(g);
return 0;
}