Cod sursa(job #67835)

Utilizator Binary_FireFlorin Pogocsan Binary_Fire Data 25 iunie 2007 17:46:28
Problema P-sir Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <cstdio>
#define fin  "psir.in"
#define fout "psir.out"
#define Nmax 1001

long long ret,Mod,cnt[Nmax][Nmax];
int N,v[Nmax];

int main() {
int i,j,k;
	freopen(fin,"r",stdin); freopen(fout,"w",stdout);

	scanf("%d",&N);
	
	Mod=(long long)1<<32;

//	fprintf(stderr,"%lld\n",Mod);
	
	for (i=1;i<=N;++i)
		scanf("%d",&v[i]);
	
	for (i=1;i<=N;++i)
	for (j=1;j<i;++j)
		cnt[i][j]=1;

	for (i=1;i<=N;++i)
	for (j=1;j<i;++j)
	for (k=1;k<j;++k) 
		if ( (v[j] < v[i] && v[k] > v[i]) || (v[j] > v[i] && v[k] < v[i] ) ) {
			cnt[i][j]+=cnt[j][k];
			if ( cnt[i][j] >= Mod )
				cnt[i][j]-=Mod;
		}
			
	for (i=1;i<=N;++i)
	for (j=1;j<i;++j) {
		ret+=cnt[i][j];
		if (ret>=Mod)
			ret-=Mod;
	}

	printf("%lld\n",ret);

	return 0;
}