Pagini recente » Cod sursa (job #2694814) | Cod sursa (job #1817104) | Cod sursa (job #449035) | Cod sursa (job #1236489) | Cod sursa (job #1528830)
#include<cstdio>
#include<algorithm>
using namespace std;
#define MOD 4294967296
struct ps{
long long x;
long long a;
long long p;
}v[2010];
long long n,i,j,nr,a,s,x[2010][2010];
FILE *f,*g;
int cmp(ps a, ps b){
return a.x<b.x;
}
int cmpp(ps a,ps b){
return a.p<b.p;
}
int main(){
f=fopen("psir.in","r");
g=fopen("psir.out","w");
fscanf(f,"%lld",&n);
for(i=1;i<=n;i++){
fscanf(f,"%lld",&v[i].x);
v[i].p=i;
}
sort(v+1,v+n+1,cmp);
for(i=1;i<=n;i++){
if(v[i].x>v[i-1].x)
nr++;
v[i-1].a=nr-1;
}
v[n].a=nr;
sort(v+1,v+n+1,cmpp);
for(i=1;i<=n;i++){
for(j=1;j<i+1;j++){
if(v[j].a<v[i].a)
a=(x[j][nr]-x[j][ v[i].a ])%MOD;
else if(v[j].a>v[i].a)
a=(x[j][ v[i].a - 1 ])%MOD;
x[i][ v[j].a ]=a+1;
s=(s+a+1)%MOD;
}
for(j=1;j<=nr;j++){
x[i][j]=(x[i][j]+x[i][j-1])%MOD;
}
}
fprintf(g,"%lld",s);
fclose(f);
fclose(g);
return 0;
}