Cod sursa(job #66724)

Utilizator dominoMircea Pasoi domino Data 20 iunie 2007 20:17:20
Problema P-sir Scor Ascuns
Compilator cpp Status done
Runda Marime 0.66 kb
#include <stdio.h>

#define MAX_N 2048
#define FIN "psir.in"
#define FOUT "psir.out"
#define FOR(i, a, b) for (i = (a); i < (b); i++)

int N, P[MAX_N];
unsigned cnt[MAX_N][MAX_N], Res;

int main (void)
{
    int i, j, k;

    freopen (FIN, "r", stdin);
    freopen (FOUT, "w", stdout);

    scanf ("%d", &N);
    FOR (i, 0, N) scanf ("%d", P + i);

    FOR (i, 0, N) FOR (j, i + 1, N)
    {
        cnt[i][j] = 1;
        if (P[j] > P[i])	
            FOR (k, 0, i) cnt[i][j] += (P[k] > P[j]) * cnt[k][i];
        if (P[j] < P[i])
            FOR (k, 0, i) cnt[i][j] += (P[k] < P[j]) * cnt[k][i];
        Res += cnt[i][j];
    }

    printf ("%u\n", Res);

    return 0;
}