From 5038906317401294df2971f05c549c9314243920 Mon Sep 17 00:00:00 2001 From: Bruno Freitas Tissei <bft15@inf.ufpr.br> Date: Wed, 25 Apr 2018 14:49:22 +0200 Subject: [PATCH] Add BALE11 Signed-off-by: Bruno Freitas Tissei <bft15@inf.ufpr.br> --- contests/Cadernaveis/BALE11.cpp | 54 +++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 contests/Cadernaveis/BALE11.cpp diff --git a/contests/Cadernaveis/BALE11.cpp b/contests/Cadernaveis/BALE11.cpp new file mode 100644 index 0000000..16e26aa --- /dev/null +++ b/contests/Cadernaveis/BALE11.cpp @@ -0,0 +1,54 @@ +#include <bits/stdc++.h> + +#define MAX 101010 +#define MOD 1000000007 +#define inf 0x3f3f3f3f + +#define fi first +#define se second +#define sz size() +#define pb push_back +#define all(x) (x).begin(), (x).end() +#define rall(x) (x).rbegin(), (x).rend() + +using namespace std; + +typedef long long ll; +typedef pair<int,int> ii; + +int v[MAX]; +int tree[MAX]; + +int query(int idx) { + int sum = 0; + for (; idx > 0; idx -= (idx & -idx)) + sum += tree[idx]; + + return sum; +} + + +void update(int idx, int val) { + for (; idx <= MAX; idx += (idx & -idx)) + tree[idx] += val; +} + + +int main() { + ios::sync_with_stdio(0); + cin.tie(0); + + int n; + cin >> n; + for (int i = 0; i < n; ++i) + cin >> v[i]; + + int ans = 0; + for (int i = 0; i < n; ++i) { + ans += query(n - v[i] + 1); + update(n - v[i] + 1, 1); + } + + cout << ans << '\n'; + return 0; +} -- GitLab