Cod sursa(job #3143278)

Utilizator SSKMFSS KMF SSKMF Data 28 iulie 2023 18:28:56
Problema Litere Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
using namespace std;

ifstream cin ("litere.in");
ofstream cout ("litere.out");

int aparitii[27];
char sir[10001];

int main ()
{
    int lungime;
    cin >> lungime >> sir;

    auto Suma = [&] (int indice) -> int {
        int suma = 0; while (indice) { suma += aparitii[indice] ; indice -= (indice & -indice); } return suma;
    };

    auto Update = [&] (int indice) -> void {
        while (indice <= 26) { aparitii[indice]++; indice += (indice & -indice); }
    };

    int interschimbari = 0;
    for (int indice = 0 ; indice < lungime ; indice++)
        { interschimbari += Suma(26) - Suma(sir[indice] - 'a' + 1); Update(sir[indice] - 'a' + 1);}

    cout << interschimbari;
    return 0;
}