Pagini recente » Cod sursa (job #2287342) | Cod sursa (job #2827428) | Cod sursa (job #2105597) | Cod sursa (job #1383341) | Cod sursa (job #93357)
Cod sursa(job #93357)
//melc.
#include<stdio.h>
int n,k,i,aux;
long long a[500001];
bool gasit;
void citire()
{
freopen("reguli.in","r",stdin);
scanf("%d\n",&n);
k=0; long long prev,aux;
scanf("%lld\n",&prev);
for (int i=1;i<n;i++)
{
scanf("%lld\n",&aux);
a[i]=aux-prev;
prev=aux;
}
fclose(stdin);
}
void afis()
{
freopen("reguli.out","w",stdout);
printf("%d\n",k);
for (i=1;i<=k;i++) printf("%lld\n",a[i]);
fclose(stdout);
}
void perioada()
{
gasit=false;k=1;aux=1;
for (i=2;i<n;i++)
{
if (a[i]==a[aux])
{
if (aux==(i+1)/2)
{
gasit=true;
k=aux;
}
if (!gasit) aux++;
else aux=aux%k+1;
}
else
{
gasit=false;
aux=1;k=n-1;
}
}
if (aux>1&&!k==n-1) k=n-aux;
}
int main()
{
citire();
perioada();
afis();
return 0;
}