Pagini recente » Cod sursa (job #2557521) | Cod sursa (job #1671820) | Cod sursa (job #446022) | Cod sursa (job #1951410) | Cod sursa (job #67781)
Cod sursa(job #67781)
#include<stdio.h>
#define Nm 2001
int P[Nm],n;
void read()
{
int i;
freopen("psir.in","r",stdin);
scanf("%d",&n);
for(i=1;i<=n;++i)
scanf("%d",P+i);
}
unsigned solve()
{
int i,j;
unsigned Nr[Nm],A[Nm],B[Nm],Mod=4294967295u;
Nr[1]=0;
for(i=2;i<=n;++i)
{
Nr[i]=((long long)Nr[i-1]+i-1)&Mod;
A[0]=B[0]=0;
for(j=1;j<i;++j)
{
A[j]=A[j-1]; B[j]=B[j-1];
if(P[j]<P[i])
{
A[j]=((long long)A[j]+Nr[j]+1)&Mod;
Nr[i]=((long long)Nr[i]+B[j-1])&Mod;
}
else
if(P[j]>P[i])
{
B[j]=((long long)B[j]+Nr[j]+1)&Mod;
Nr[i]=((long long)Nr[i]+A[j-1])&Mod;
}
}
}
return Nr[n];
}
void write(unsigned s)
{
freopen("psir.out","w",stdout);
printf("%u\n",s);
}
int main()
{
read();
write(solve());
return 0;
}