Cod sursa(job #108541)

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

long long a[NMAX], d[NMAX];
long n;
long maxi, maxj, max;

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

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

    for (i=1; i<=n; ++i)
	scanf("%ld", &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("%ld\n", k);
    for (i=1; i<=k; ++i)
	printf("%ld\n", d[i]);

    fclose(stdin);
    fclose(stdout);

    return 0;
}