Pagini recente » Borderou de evaluare (job #2912087) | Cod sursa (job #3184646) | Cod sursa (job #1240388) | Cod sursa (job #2462978) | Cod sursa (job #67917)
Cod sursa(job #67917)
#include <stdio.h>
#include <vector>
#include <algorithm>
using namespace std;
#define in "psir.in"
#define out "psir.out"
#define dim 2001
long long modulo = 4294967296LL;
int N;
long long A[dim], P[dim];
vector< vector<long long> > B;
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d", &N);
B.resize(N+1);
for ( int i = 1; i <= N; i++ )
{
B[i].resize(N+1);
scanf("%lld", &P[i]);
}
for ( int i = 1; i <= N; i++ )
for ( int j = i+1; j <= N; j++ )
B[i][j] = 1;
long long G;
int poz;
for ( int i = 1; i < N-1; i++ )
for ( int j = i+1; j < N; j++ )
for ( int k = j+1; k <= N; k++ )
{
if ( (P[k]-P[i])*(P[k]-P[j]) < 0 )
{
B[j][k] += B[i][j];
}
}
long long t = 0;
/* for ( int i = 1; i <= N; i++ )
{
G = t + A[i];
while ( G >= modulo ) G -= modulo;
t = G;
}*/
for ( int i = 1; i <= N; i++ )
for ( int j = 1; j <= N; j++ )
t += B[i][j];
/* G = t+N*(N-1)/2;
while ( G >= modulo ) G -= modulo;
t = G;
*/
printf("%lld", t);
}