Pagini recente » Cod sursa (job #1321881) | Cod sursa (job #2338839) | Cod sursa (job #2585274) | Cod sursa (job #1308562) | Cod sursa (job #481238)
Cod sursa(job #481238)
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;
for(i=1;i<=N;i++)
if(a[i]==a[N-i+1]&&ok[i-1]==1)
ok[i]=1;
//cout<<" \n";
int r,c;
/*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))
{
fout<<L<<"\n";
break;
}
}*/
fout<<N-pi[N]<<"\n";
for(i=1;i<=N-pi[N];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;
}