Pagini recente » Cod sursa (job #1865917) | Cod sursa (job #2967247) | Profil Bungmint | Cod sursa (job #435976) | Cod sursa (job #1180049)
#include <fstream>
using namespace std;
ifstream mama("reguli.in");
ofstream tata("reguli.out");
int x[500005],p[500004],n;
void prefix()
{
int k=0;
p[1]=0;
for(int i=2;i<=n-1;i++)
{
while(k>0 and x[k+1]!=x[i])
k=p[k];
if(x[k+1]==x[i])
k++;
p[i]=k;
}
}
int main()
{
int i,a,b,l=0;
mama>>n>>a;
for(i=2;i<=n;i++)
{
mama>>b;
x[i-1]=b-a;
a=b;
}
prefix();
i=n-1;
if(p[i]>0)
{
while((p[i]==p[i-1]+1 or (p[i]==p[i-1] and p[i]==0)) and i>1)
{
if(p[i]==0) l++;
i--;
}
tata<<l+1<<'\n';
for(i=1;i<=l+1;i++)
tata<<x[i]<<'\n';
}
else tata<<0;
return 0;
}