Pagini recente » Cod sursa (job #1829089) | Cod sursa (job #866100) | Cod sursa (job #3280512) | Cod sursa (job #3041327) | Cod sursa (job #612502)
Cod sursa(job #612502)
#include <fstream>
using namespace std;
int N;
unsigned int V[2002], like[2002];
unsigned int pos[2002];
int main()
{
ifstream fin("psir.in");
ofstream fout("psir.out");
fin >> N;
for (int i = 1; i <= N; ++i)
{
fin >> V[i];
for (int j = i - 1; j >= 1; --j)
like[i] += (V[i] == V[j]);
pos[i] = pos[i - 1] + i - 1;
unsigned int big = 0, small = 0;
for (int j = i - 1; j >= 1; --j)
{
if (V[j] < V[i])
pos[i] += (pos[j] - like[j] + 1u) * big;
else if (V[j] > V[i])
pos[i] += (pos[j] - like[j] + 1u) * small;
small += (V[j] < V[i]);
big += (V[j] > V[i]);
}
}
fout << pos[N];
fin.close();
fout.close();
}