Cod sursa(job #61346)

Utilizator DastasIonescu Vlad Dastas Data 18 mai 2007 22:34:07
Problema Subsir 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <cmath>
#define max 200001
#define f out

FILE *in = fopen("invsc.in","r"), *out = fopen("invsc.out","w");

int n;
int a[max];
int b[max];

void read()
{
    fscanf(in, "%d", &n);

    for ( int i = 1; i <= n; ++i )
        fscanf(in, "%d", &a[i]);
}

int nrcifre(int q)
{
    return (int)log10(q) + 1;
}

int main()
{
    read();

    b[1] = n;
    fprintf(f, "%d\n", b[1]);
    for ( int i = 2; i <= n; ++i )
    {
        if ( b[a[i]] == 0 )
        {
            b[a[i]] = n*i-i;
            if ( nrcifre(b[a[i]]) > 8 )
                b[a[i]] = b[a[i]] % 10000000 + 1;
            fprintf(f, "%d\n", b[a[i]]);
        }
        else
        {
            --b[a[i]];
            fprintf(f, "%d\n", b[a[i]]);
        }
    }

	return 0;
}