Pagini recente » Cod sursa (job #307019) | Cod sursa (job #439128) | Cod sursa (job #1639954) | Cod sursa (job #1673941) | Cod sursa (job #3143278)
#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;
}