Cod sursa(job #2289047)
| Utilizator | Data | 24 noiembrie 2018 10:44:33 | |
|---|---|---|---|
| Problema | Reguli | Scor | 80 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include<bits/stdc++.h>
using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");
long long P[500005],v[500005];
int n,a,b,k;
int main()
{
f>>n>>a;
for(int i=2;i<=n;++i)
{
f>>b;
v[i-1]=b-a;
a=b;
}
for(int i=2;i<n;++i)
{
for(;k!=0 && v[k+1]!=v[i];)k=P[k];
if(v[k+1]==v[i])k++;
P[i]=k;
}
g<<n-1-P[n-1]<<'\n';
for(int i=1;i<=n-1-P[n-1];++i)
g<<v[i]<<'\n';
return 0;
}
