Cod sursa(job #1427986)

Utilizator sddddgjdZloteanu Anastasia sddddgjd Data 3 mai 2015 14:16:00
Problema Litere Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>
#define N 10000
#define SIGMA 27
int v[N+1];
void update(int poz,int val){
    if(poz==17)
        poz++,poz--;
    while(poz<=SIGMA){
        v[poz]+=val;
        poz+=(poz&-poz);
    }
}
int sum(int poz){
    int s=0;
    while(poz){
        s+=v[poz];
        poz&=poz-1;
    }
    return s;
}
int main(){
    FILE *fin,*fout;
    fin=fopen("litere.in","r");
    fout=fopen("litere.out","w");
    int n;
    fscanf(fin,"%d ",&n);
    int i;
    long long inv=0;
    for(i=1;i<=n;i++){
        char ch=fgetc(fin);
        ch=ch-'a'+1;
        update(ch,1);
        inv+=sum(27)-sum(ch);
    }
    fprintf(fout,"%lld",inv);
    return 0;
}