Pagini recente » Cod sursa (job #232630) | Cod sursa (job #1051056) | Cod sursa (job #753269) | Cod sursa (job #141789) | Cod sursa (job #551334)
Cod sursa(job #551334)
#include <algorithm>
#include <vector>
using namespace std;
#define pb push_back
#define DIM 2005
unsigned int bst[DIM][DIM];
unsigned int nrt;
vector <int> tmp;
int v[DIM];
int N;
void read ()
{
int i;
scanf ("%d",&N);
for (i=1; i<=N; ++i)
{
scanf ("%d",&v[i]);
tmp.pb (v[i]);
}
}
void solve ()
{
int i,j;
sort (tmp.begin (),tmp.end ());
tmp.erase (unique (tmp.begin (),tmp.end ()),tmp.end ());
for (i=1; i<=N; ++i)
v[i]=lower_bound (tmp.begin (),tmp.end (),v[i])-tmp.begin ()+1;
for (i=1; i<=N; ++i)
{
for (j=1; j<i; ++j)
{
++bst[i][v[j]];
if (v[i]>v[j])
bst[i][v[j]]+=bst[j][N]-bst[j][v[i]];
if (v[i]<v[j])
bst[i][v[j]]+=bst[j][v[i]-1];
}
for (j=2; j<=N; ++j)
bst[i][j]+=bst[i][j-1];
}
for (i=1; i<=N; ++i)
nrt+=bst[i][N];
printf ("%u",nrt);
}
int main ()
{
freopen ("psir.in","r",stdin);
freopen ("psir.out","w",stdout);
read ();
solve ();
return 0;
}