Pagini recente » Cod sursa (job #1615053) | Cod sursa (job #1628137) | Cod sursa (job #1882541) | Atasamentele paginii Clasament oni2014_ziua_iv | Cod sursa (job #1799650)
#include <bits/stdc++.h>
using namespace std;
ifstream f("psir.in");
ofstream g("psir.out");
int N,i,j;
int main()
{
f>>N;
vector<int> v(N),un(N);
for (i=0;i<N;++i)
f>>v[i],un[i]=v[i];
sort(un.begin(),un.end());
un.resize(unique(un.begin(),un.end())-un.begin());
int K=un.size();
for(i=0;i<N;++i)
v[i]=lower_bound(un.begin(),un.end(),v[i])-un.begin();
vector<vector<unsigned int> > dp(N,vector<unsigned int>(K,0u));
unsigned int sol(0u);
for(i=1;i<N;++i)
{
for(j=0;j<i;++j)
{
if(v[j]<v[i]) dp[i][v[j]]+=dp[j][K-1]-dp[j][v[i]];
else if(v[j]>v[i]&&v[i]) dp[i][v[j]]+=dp[j][v[i]-1];
++dp[i][v[j]];
}
for(j=1;j<K;++j) dp[i][j]+=dp[i][j-1];
sol+=dp[i][K-1];
}
g<<sol;
return 0;
}