Pagini recente » Cod sursa (job #997228) | Cod sursa (job #2042703) | Cod sursa (job #2730411) | Cod sursa (job #1913602) | Cod sursa (job #850553)
Cod sursa(job #850553)
#include<fstream>
using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");
int i,n,nr,v[500009],a[500009],urm[500009];
void prefix(int a[])
{
int i,k=0;
urm[1]=0;
for(i=2;i<=n;++i)
{
while(k!=0&&a[i]!=a[k+1])
k=urm[k];
if(a[i]==a[k+1])
++k;
urm[i]=k;
}
}
int main()
{
f>>n;
for(i=1;i<=n;++i)
f>>v[i];
for(i=1;i<n;++i)
a[i]=v[i+1]-v[i];
--n;
prefix(a);
nr=n-urm[n];
g<<nr<<'\n';
for(i=1;i<=nr;++i)
g<<a[i]<<'\n';
return 0;
}