Pagini recente » Cod sursa (job #3004014) | Cod sursa (job #1586622) | Cod sursa (job #2779280) | Cod sursa (job #2770288) | Cod sursa (job #2557994)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("reguli.in");
ofstream fout("reguli.out");
int n,a,b,stare[500001];
vector <int> v;
int main()
{
int i;
fin>>n;
fin>>a;
for (i=1;i<n;i++)
{
fin>>b;
v.push_back(b-a);
a=b;
}
int x=v.size(),st=0;
for (i=2;i<=x;i++)
{
while (st>0 && v[st]!=v[i-1])
st=stare[st];
if (v[st]==v[i-1])
st++;
stare[i]=st;
}
int lung;
for (i=1;i<=x;i++)
{
if (stare[i]>=(i+1)/2 && stare[i]%(i-stare[i])==0)
{
lung=i-stare[i];
fout<<i-stare[i];
break;
}
}
fout<<"\n";
for (i=0;i<lung;i++)
fout<<v[i]<<"\n";
return 0;
}