Pagini recente » Cod sursa (job #921767) | Cod sursa (job #940250) | Cod sursa (job #1674301) | Cod sursa (job #271654) | Cod sursa (job #1402256)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
int N;
vector < int64_t > V;
int L;
void Citire()
{
long long X1,X2;
fin>>N>>X1;
V.reserve(N+32);
N--;
for(int i=1; i<=N; i++)
{
X2=X1;
fin>>X1;
V.push_back(X1-X2);
}
}
void Rezolvare()
{
int i,i2=0,inc=0,sf=1;
int i3;
for(i=1; i<N; i++)
{
if(i2>=sf)
i2%=sf;
if(V[i]==V[i2])
i2++;
else
{
i2=inc;
if(V[i]==V[inc])
{
i3=i;
while(i3>=sf && V[i3]==V[inc])
{i3--;
i2++;}
i3++;
i2--;
sf=i3+1;
}
else
sf=i+1;
}
}
L=sf;
}
void Afisare()
{
fout<<L<<'\n';
for(int i=0; i<L; i++)
fout<<V[i]<<'\n';
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}