Pagini recente » Cod sursa (job #480238) | Cod sursa (job #2299489) | Cod sursa (job #2340491) | Cod sursa (job #2590195) | Cod sursa (job #2916437)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("reguli.in");
ofstream fo("reguli.out");
int N;
long d_Array[500005];
long LPS[500005];
void Solve(int N)
{
int len=1;
LPS[1]=1;
int i=2;
while(i<=N)
{
if(d_Array[i]==d_Array[len])
{
len++;
LPS[i]=len;
i++;
}else
{
if(len==1)
{
LPS[i]=1;
i++;
}else
len=LPS[len-1];
}
}
}
int main()
{
fi>>N;
long x;
fi>>x;
for(int i=2;i<=N;i++)
{
long y;
fi>>y;
d_Array[i-1]=y-x;
x=y;
}
N--;
Solve(N);
N=N-LPS[N]+1;
fo<<N<<"\n";
for(int i=1;i<=N;i++)
fo<<d_Array[i]<<"\n";
return 0;
}