Cod sursa(job #18821)

Utilizator szakiold name szaki Data 18 februarie 2007 14:12:48
Problema Reguli Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 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 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", &first);
    for(i=1;i<n;i++) 
    {
        fscanf(fin,"%lld", &b[i]);
        b[i]-=first;
    }
    n--;

    for(l = 1; l < n; l++)
    {
        long long dif = b[n]-b[n%l], nr = n/l;
        if ((dif / nr == b[l]) && (dif % nr == 0)) 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);
    for(i=1; i<=l; i++) printf("%lld\n", b[i]-b[i-1]);

    getch();
    return 0;
}