Pagini recente » Cod sursa (job #382048) | Cod sursa (job #1058265) | Cod sursa (job #202322) | Cod sursa (job #600006) | Cod sursa (job #91814)
Cod sursa(job #91814)
#include <iostream>
using namespace std;
long n;
long long v[500000],a[500000];
void citire()
{
freopen("reguli.in","r",stdin);
scanf("%ld\n",&n);
scanf("%lld\n",&v[0]);
for (int i=1;i<n;i++)
{
scanf("%lld\n",&v[i]);
a[i-1]=v[i]-v[i-1];
}
}
int subsir(int x,int y)
{
for (int i=x;i<x+y;i++)
if (a[i-x] != a[i])
return 0;
return 1;
}
int search(int k)
{
for (int i=k;i<n-(n%k)-1;i += k)
if (! subsir(i,k))
return 0;
return 1;
}
void scrie(long k)
{
freopen("reguli.out","w",stdout);
printf("%ld\n",k);
for (int i=0;i<k;i++)
printf("%lld\n",a[i]);
fclose(stdout);
}
int main()
{
citire();
for (long k=1;k<n;k++)
if (search(k))
{
scrie(k);
return 0;
}
return 0;
}