Pagini recente » Cod sursa (job #2735555) | Cod sursa (job #3244790) | Cod sursa (job #1399279) | Cod sursa (job #1201203) | Cod sursa (job #1179573)
#include<cstdio>
using namespace std;
long long n,a[500005],d[500005],rez[500005];
void calcul()
{
int k=0,q;
rez[1]=0;
for (q=2;q<=n;++q)
{
while (k>0 && d[q]!=d[k+1]) k=rez[k];
if (d[q]==d[k+1]) ++k;
rez[q]=k;
}
}
int main()
{
int i,poz;
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
scanf("%d",&n);
for (i=1;i<=n;++i) scanf("%lld",&a[i]);
for (i=2;i<=n;++i) d[i-1]=a[i]-a[i-1];
n=n-1;
calcul();
printf("%lld\n",n-rez[n]);
for (i=1;i<=n-rez[n];++i) printf("%lld\n",d[i]);
return 0;
}