Pagini recente » Cod sursa (job #673106) | Cod sursa (job #778184) | Cod sursa (job #3137606) | Cod sursa (job #1917399) | Cod sursa (job #1402266)
#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()
{
int64_t X1,X2;
fin>>N>>X1;
V.resize(N+32);
N--;
for(int i=1; i<=N; i++)
{
X2=X1;
fin>>X1;
V[i]=X1-X2;
}
}
void Rezolvare()
{
for(auto x : V)
cout<<x<<' ';
int i,i2=1,sf=2;
int i3;
for(i=2; i<=N; i++)
{
if(i2>=sf)
i2=i2%sf+1;
if(V[i]==V[i2])
i2++;
else
{
i2=1;
if(V[i]==V[1])
{
i3=i;
while(i3>=sf && V[i3]==V[1])
{
i3--;
i2++;
}
i3++;
i2--;
sf=i3+1;
}
else
sf=i+1;
}
}
L=sf;
}
void Afisare()
{
fout<<L<<'\n';
for(int i=1; i<=L; i++)
fout<<V[i]<<'\n';
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}