Pagini recente » Cod sursa (job #1499396) | Cod sursa (job #958477) | Cod sursa (job #1414148) | Cod sursa (job #522396) | Cod sursa (job #1377193)
#include <fstream>
#include <algorithm>
using namespace std;
typedef pair<char, int> Pair;
const int kMaxN = 10005;
ifstream fin("litere.in");
ofstream fout("litere.out");
int n, sol;
Pair v[kMaxN];
int aib[kMaxN];
bool CmpInd(const Pair &a, const Pair &b) {
return a.second < b.second;
}
void Insert(int pos) {
for (int i = pos; i <= n; i += i & -i)
++aib[i];
}
int Query(int pos) {
int ans = 0;
for (int i = pos; i > 0; i -= i & -i)
ans += aib[i];
return ans;
}
int main() {
fin >> n;
for (int i = 1; i <= n; ++i) {
fin >> v[i].first;
v[i].second = i;
}
sort(v + 1, v + n + 1);
for (int i = 1; i <= n; ++i)
v[i].first = v[i - 1].first + 1;
sort(v + 1, v + n + 1, CmpInd);
for (int i = n; i; --i) {
sol += Query(v[i].first);
Insert(v[i].first);
}
fout << sol << "\n";
return 0;
}