Pagini recente » Cod sursa (job #2223994) | Cod sursa (job #2226096) | Cod sursa (job #1231349) | Cod sursa (job #672786) | Cod sursa (job #483031)
Cod sursa(job #483031)
#include<algorithm>
using namespace std;
#define DIM 1001
int n,pi[DIM],a[DIM];
void kmp ()
{
int i,q=0;
for(i=2;i<=n;++i)
{
while(q>0 && a[q+1]!=a[i])
q=pi[q];
if(a[q+1]==a[i])
++q;
pi[i]=q;
}
}
int solve ()
{
int i,vf,ok=0;
for(i=n-1;i>0;--i)
if(!pi[i])
return i;
else
{
if(pi[i+1]<pi[i] && !ok)
{
vf=pi[i];
ok=1;
}
if(pi[i+1]<pi[i] && ok && pi[i]!=vf)
return i;
}
}
int main ()
{
freopen("reguli.in","r",stdin);
freopen("reguli.out","w",stdout);
int i,vf;
scanf("%d%d",&n,&a[1]);
for(i=2;i<=n;++i)
{
scanf("%d",&a[i]);
a[i-1]=a[i]-a[i-1];
}
--n;
kmp ();
vf=solve ();
printf("%d\n",vf);
for(i=1;i<=vf;++i)
printf("%d\n",a[i]);
return 0;
}