Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int a[1000];
- int BIT[1000]={0};
- // Cumulative Sum Query BIT
- void update(int idx ,int val,int n){
- while (idx <= n){
- BIT[idx] += val;
- idx += (idx & -idx);
- }
- }
- //Sum Query (1,n)
- int query(int idx){
- int ans = 0;
- while (idx > 0){
- ans += BIT[idx];
- idx -= (idx & -idx);
- }
- return ans;
- }
- int main() {
- int n;
- cin>>n;
- for(int i=1;i<=n;i++){
- cin>>a[i];
- }
- // Inversions Count
- int ans = 0;
- for(int i=n;i>=1;i--){
- ans += query(a[i]-1);
- update(a[i],1,n);
- }
- cout<<ans <<endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment