Cod sursa(job #18760)

Utilizator szakiold name szaki Data 18 februarie 2007 13:58:17
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
/*#include "stdafx.h"
#include "infoarena.h"

#include <conio.h>/**/
#include <stdio.h>


#ifndef _INC_CONIO
void clrscr()
{
    freopen("reguli.out", "w", stdout);
}
void getch() {}
#else
void clrscr() {}
#endif

#define rep(i,n) for(i=0;i<n;i++)

long long last, cur, first;
long long a[500001];
long long b[500001];

int main()
{
    int n,i,l,j;
    clrscr();
    FILE *fin = fopen("reguli.in","r");
    fscanf(fin,"%d",&n);

    fscanf(fin,"%lld", &last);
    first = last;
    for(i=1;i<n;i++) 
    {
        fscanf(fin,"%lld", &cur);
        a[i-1] = cur - last;
        b[i] = cur - first;
        last = cur;
    }
    n--;

    /*for(l = 1; l < n; l++)
        if (b[n] == b[l]*(n/l)+b[n%l]) break;*/

    
    for(l = 1; l < n; l++)
    {
        for (i = 0; i < l; i++)
        {
            for (j = l+i; j < n; j+=l)
                if(a[j-l] != a[j]) break;
            if (j < n) break;
        }
        if (i==l) break;
    }

    printf("%d\n", l);
    rep(i,l) printf("%lld\n", a[i]);

    getch();
    return 0;
}