Cod sursa(job #67836)

Utilizator nimicLeoveanu Mihaita Alexandru nimic Data 25 iunie 2007 17:47:17
Problema P-sir Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <cstdio>
#include <string>
#include <ctime>
#define MaxN 2010

using namespace std;

int n, a[MaxN];
unsigned pos[MaxN][MaxN];

void solve()
{
     int i, j, k;
     for (i=1; i<n; i++)
         for (j=0; j<i; j++){
             unsigned val = ++pos[j][i];
             int Min = min(a[i], a[j]), Max = max(a[i], a[j]);
             for (k=i+1; k<n; k++)
                 if (Min<a[k] && a[k]<Max) pos[i][k] += val;
         }
}

int main()
{
    int i, j;
    double timp = clock();
    freopen("psir.in", "r", stdin);
    freopen("psir.out", "w", stdout);
    scanf("%d", &n);
    for (i=0; i<n; i++)
        scanf("%d", a+i);
    solve();
    unsigned sol=(n==1);
    for (i=0; i<n; i++)
        for (j=i+1; j<n; j++)
            sol+=pos[i][j];
    printf("%u\n", sol);
    #ifdef WIN32
    printf("A durat %f secunde.", (clock()-timp)/1000);
    #endif
    return 0;
}