Cod sursa(job #481210)
| Utilizator | Data | 30 august 2010 21:20:27 | |
|---|---|---|---|
| Problema | Reguli | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include<algorithm>
using namespace std;
long long a[500002],x,y;
int n,i,j,k;
int pi[500002];
int main()
{
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
scanf("%d",&n);
scanf("%lld",&x);
for(i=2;i<=n;i++)
{
scanf("%lld",&y);
a[i-1]=y-x;
x=y;
}
--n;
for(i=2;i<=n;i++)
{
while(k&&a[k+1]!=a[i])
k=pi[k];
if(a[k+1]==a[i])
k++;
pi[i]=k;
}
printf("%d\n",k=n-pi[n]);
for(i=1;i<=k;i++)
printf("%lld\n",a[i]);
return 0;
}
