Cod sursa(job #2378650)

Utilizator aditzu7Adrian Capraru aditzu7 Data 12 martie 2019 15:15:06
Problema Schi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#define op(x) (x&(-x))
#include <algorithm>
using namespace std;
int sum,b,p,i,x,n,aib[101*1001];

int sol(int x){
int i;
int rez=0;
for(i=x;i>0;i-=op(i))
    rez+=aib[i];
return rez;

}

void add(int x,int n){
int i;
for(i=x;i<=n;i+=op(i)) aib[i]++;

}
int ok=0;
struct mch{
int val,ord;
} a[101*1001];
int compare( mch a,mch b){
if(a.val==b.val) return a.ord<b.ord;
return a.val<b.val;

}

int main()
{

   freopen("inv.in","r",stdin);
   freopen("inv.out","w",stdout);
   int n,m;
   scanf("%d",&n);
   for(i=1;i<=n;i++){scanf("%d",&x);
  // add(i,v[i],n);
    a[i].val=x;
    a[i].ord=i;
   }
   sort(a+1,a+n+1,compare);
   long long  ssol=1LL*n*(n-1)/2;

   for(i=1;i<=n;i++){

   int x=a[i].ord;
   ssol-=1LL*sol(x);
   add(x,n);


   }
   printf("%lld\n",ssol%9917);
    return 0;
}