Pagini recente » Cod sursa (job #1682223) | Cod sursa (job #1534532) | Cod sursa (job #2100891) | Cod sursa (job #181239) | Cod sursa (job #2298550)
#include <fstream>
using namespace std;
ifstream f("reguli.in");
ofstream g("reguli.out");
long long v[500005],n,a,b,i,pi[500005],k,m,j,of;
int main()
{
f>>n;
f>>a;
for (i=2;i<=n;i++)
{
f>>b;
v[i-2]=b-a;
a=b;
}
pi[0]=0;
for (i=1;i<n-1;i++)
{
k=pi[i-1];
while (k>0&&v[i]!=v[k])
{
k=pi[k-1];
}
if (v[i]==v[k])
{
k++;
}
pi[i]=k;
}
m=n-1;
of=1000000000000000000;
for (j=0;j<m;j++)
{
if (j+1-pi[j]<j+1)
{
if ((j+1)%(j+1-pi[j])==0)
{
of=min(of,j+1-pi[j]);
}
}
}
g<<of<<'\n';
if (of==1000000000000000000)of=n-1;
for (i=0;i<of;i++)
{
g<<v[i]<<'\n';
}
return 0;
}