Pagini recente » Cod sursa (job #1251804) | Cod sursa (job #520903) | Cod sursa (job #1406130) | Cod sursa (job #1753062) | Cod sursa (job #3173027)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("litere.in");
ofstream fout("litere.out");
char a[100003], b[100003];
int nr;
void Interclasare(int st,int m, int dr)
{
int j,k,i;
i = st;
k = st;
j = m+1;
while( i <= m && j <= dr)
if ( a[i] > a[j])
{
b[k ++] = a[j++];
nr +=(m-i+1);
}
else b[k++] = a[i++];
while ( i <= m) b[k++] = a[i++];
while ( j <= dr) b[k++] = a[j++];
for(i = st;i <= dr; i ++)
a[i] = b[i];
}
void Mergesort(int st,int dr)
{
if ( dr - st >= 1)
{
int m = (st+dr)/2;
Mergesort(st,m);
Mergesort(m+1,dr);
Interclasare(st,m,dr);
}
}
int main()
{
int i,n;
cin >> n;
for ( i = 1; i <= n; i++)
cin >> a[i];
Mergesort(1,n);
cout << nr;
return 0;
}