Cod sursa(job #427416)

Utilizator SpiderManSimoiu Robert SpiderMan Data 27 martie 2010 20:55:29
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;

#define M 9917

ifstream f("algsort.in");
ofstream g("algsort.out");

int N, A[500001], B[500001], rez, i;

void merge_sort(int l, int r)
{
    int m = (l + r) >> 1, i, j, k;
    if (l == r ) return ;
    merge_sort(l, m );
    merge_sort(m + 1, r);
    for (i = l, j = m + 1, k = l; i <= m || j <= r; )
        if (j > r || (i <= m && A[i] < A[j]))
            B[k++] = A[i++];
        else
            rez += m - i + 1, rez %= M , B[k++] = A[j++];
    for (k = l; k <= r; k++) A[k] = B[k];
}
int main()
{
    f >> N;
    for (i = 1; i <= N; i++)
      f >> A[i];
    merge_sort(1,N);
    for (i=1;i<=N;i++) g<<A[i]<<" ";
    //g << rez % M;
    return 0;
}