Cod sursa(job #108555)

Utilizator ScrazyRobert Szasz Scrazy Data 22 noiembrie 2007 21:41:47
Problema Reguli Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <stdio.h>
#define NMAX 500010

long long a[NMAX], d[NMAX];
long long n;

int main()
{
    freopen("reguli.in","r",stdin);
    freopen("reguli.out","w",stdout);

    scanf("%lld", &n);
    long long i, j, k; 

    for (i=1; i<=n; ++i)
	scanf("%lld", &a[i]);

    for (i=1; i<n; ++i)
	d[i]=a[i+1]-a[i];

    j=1; 
    i=2;
 
    while (d[i] != d[1]) ++i;
    k=i-1;

    for (i=k+1; i<n; ++i)
    {
	if (j>k) j=1;
	if (d[i]==d[j]) ++j;
	else 
	{
	    j=1;
	    k=i;
	}
    }

    printf("%lld\n", k);
    for (i=1; i<=k && i<n; ++i)
	printf("%lld\n", d[i]);

    fclose(stdin);
    fclose(stdout);

    return 0;
}