Cod sursa(job #246596)

Utilizator DraStiKDragos Oprica DraStiK Data 21 ianuarie 2009 09:56:15
Problema Reguli Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#define DIM 500005
#define ll long long
ll a[DIM],b[DIM];
int n;
void read ()
{
    int i;
    scanf ("%d",&n);
    for (i=1; i<=n; ++i)
    {
        scanf ("%lld",&a[i]);
        b[i-1]=a[i]-a[i-1];
    }
}
int check (int m)
{
    int i,j=2;
    for (i=m+1; i<n; ++i,++j)
        if (b[i]!=b[j])
            return 0;
    return 1;
}
void solve ()
{
    int i,j;
    for (i=2; i<n; ++i)
        if (b[i]==b[1] && check (i))
        {
            printf ("%d\n",i-1);
            for (j=1; j<i; ++j)
                printf ("%lld\n",b[j]);
            return ;
        }
    printf ("%d\n",n-1);
    for (i=1; i<n; ++i)
        printf ("%lld\n",b[i]);
}
int main ()
{
    freopen ("reguli.in","r",stdin);
    freopen ("reguli.out","w",stdout);
    read ();
    solve ();
    return 0;
}