Pagini recente » Cod sursa (job #1337312) | Cod sursa (job #1295356) | Cod sursa (job #1362023) | Cod sursa (job #1674512) | Cod sursa (job #2510032)
#include <iostream>
#include <fstream>
#define NMAX 500000
using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");
int main()
{
int n,v[NMAX],lps[NMAX],len=0,m=0;
f>>n;
for(int i=0;i<n;++i)
f>>v[i];
for(int i=n-1;i>0;--i)
v[i]=v[i]-v[i-1];
int i=2;
while(i<n)
{
if(v[i]==v[len+1])
{
++len;
lps[i]=len;
++i;
}
else if(len)
len=lps[len-1];
else
{
lps[i]=0;
++i;
}
if(len && (i-1)%(i-1-len)==0)
m=i-1-len;
}
if(!m)
m=n-1;
g<<m<<'\n';
for(int i=1;i<=m;++i)
g<<v[i]<<'\n';
return 0;
}