Pagini recente » Cod sursa (job #1855105) | Cod sursa (job #2638969) | Cod sursa (job #706939) | Cod sursa (job #1260018) | Cod sursa (job #2054092)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n,a[500010],ans,v[500010];
void my_merge(int l,int m,int r)
{
int x1=l,x2=m+1,h=0;
while(x1<=m&&x2<=r)
{
if(a[x1]<a[x2])
v[h++]=a[x1++];
else
{
v[h++]=a[x2++];
ans=(ans+m-x1+1)%9917;
}
}
while(x1<=m)
v[h++]=a[x1++];
while(x2<=r)
v[h++]=a[x2++];
for(x1=l;x1<=r;x1++)
a[x1]=v[x1-l];
}
void merge_sort(int l,int r)
{
if(l<r)
{
int m=l+(r-l)/2;
merge_sort(l,m);
merge_sort(m+1,r);
my_merge(l,m,r);
}
}
int main()
{
int i;
fin>>n;
for(i=0;i<n;i++)
fin>>a[i];
merge_sort(0,n-1);
for(i=0;i<n;i++)
fout<<a[i]<<" ";
return 0;
}