Pagini recente » Cod sursa (job #1267205) | Cod sursa (job #663783) | Cod sursa (job #2665077) | Cod sursa (job #2563008) | Cod sursa (job #481263)
Cod sursa(job #481263)
using namespace std;
#include<iostream>
#include<fstream>
ofstream fout("reguli.out");
long long pi[500005],a[500005],N,ok[500005];
void solve()
{
int i,k=0,L;
pi[1]=0;
N--;
for(i=2;i<=N;i++)
{
while(k>0&&a[k+1]!=a[i])
k=pi[k];
if(a[k+1]==a[i]) k++;
pi[i]=k;
//cout<<pi[i]<<" ";
}
ok[0]=1;
int r,c;
for (r = N; r; r = pi[r])
ok[pi[r]] = 1;
//cout<<" \n";
int sol=0;
/*for(L=1;L<=N;L++)
{
r=N%L;c=N/L;
if( ((N-r)%(N-r-pi[N-r])==0)
&& ok[r]
&&pi[N-r]>0
&& ((N-r)/(N-r-pi[N-r])==c))
{ sol=1;
fout<<L<<"\n";
break;
}
}*//*
fout<<N-pi[N]<<"\n";*/
if(sol==0)
{L--;
fout<<L<<" ";
}
for(i=1;i<=L;i++)
fout<<a[i]<<"\n";
//cout<<"\ok";*/
}
void cit()
{int i;
long long x,y;
ifstream fin("reguli.in");
fin>>N;
fin>>x;
for(i=1;i<=N-1;i++)
{
fin>>y;
a[i]=y-x;
x=y;
//cout<<a[i]<<" ";
}
fin.close();
}
int main()
{
cit();
//cout<<"\n";
solve();
fout.close();
return 0;
}