Pagini recente » Cod sursa (job #559) | Cod sursa (job #2769757) | Cod sursa (job #2815585) | Cod sursa (job #2449354) | Cod sursa (job #1116503)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("litere.in");
ofstream g("litere.out");
int n,li,ls,k,a[10000],contor;
char cif;
void poz(int li, int ls, int &k)
{
int i=li,j=ls,aux,i1=0,j1=-1;
while (i<j)
{
if(a[i]>a[j])
{
aux=a[i]; a[i]=a[j]; a[j]=aux;
aux=i1; i1=-j1; j1=-aux;
contor++;
}
i=i+i1;
j=j+j1;
}
k=i;
}
void quick(int li, int ls)
{
if(li<ls)
{
poz(li,ls,k);
quick(li,k-1);
quick(k+1,ls);
}
}
int main()
{
int i;
f>>n;
for(i=0;i<n;i++)
{
f>>cif;
a[i]=cif-'a';
}
quick(0,n-1);
g<<contor;
return 0;
f.close();
g.close();
}