Pagini recente » Cod sursa (job #2145518) | Cod sursa (job #896769) | Cod sursa (job #1295933) | Cod sursa (job #2437873) | Cod sursa (job #93392)
Cod sursa(job #93392)
//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=0;aux=1;
for (i=2;i<n;i++)
{
if (a[i]==a[aux])
{
if (aux==(i+1)/2)
{
if (!gasit) k=aux;
gasit=true;
}
if (!gasit) aux++;
else aux=aux%k+1;
}
else
{
gasit=false;
aux=1;k=0;
if (a[i]==a[aux]) aux++;
}
}
if (aux>1&&!gasit) k=n-aux;
if (k==0) k=n-1;
}
int main()
{
citire();
perioada();
afis();
return 0;
}