Cod sursa(job #1886459)

Utilizator EdgeLordXDOvidiuPita EdgeLordXD Data 20 februarie 2017 21:42:40
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.88 kb
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
ofstream out;
ifstream in;
int a[1000],n;
void inter(int i, int m, int j){
    int b[1000];
    int x=i, k=1, y=m+1;
    while(x<=m && y<=j)
        if(a[x]<a[y])
            b[k++]=a[x++];
        else
            b[k++]=a[y++];
    while(x<=m)
        b[k++]=a[x++];
    while(y<=j)
        b[k++]=a[y++];
    int t=i;
    for(k=1; k<=(j-i)+1; ++k)
        a[t++]=b[k];
}
void mij(int i, int j){
    if(i<j){
        int m=(i+j)/2;
        mij(i,m);
        mij(m+1,j);
        inter(i,m,j);
    }
}
int main(){
    cin>>n;
    for(int i=1; i<=n; ++i) cin>>a[i];
    mij(1,n);
    for(int i=1; i<=n; ++i) cout<<a[i]<<" ";
}
/*
char v[100000];
char pr[100000]={-1};
char m[100000];
int main(){
    int c,n,s=0,a=0,b=0,d=0;
    cin>>c>>n;
    for(int i=0; i<n; ++i){ cin>>m[i]; m[i]=(m[i])-48; }
    int k=1,j;
    while(k<=pow(2,n)){
        j=n-1;
        while(v[j]==1 && j>=0){
            v[j]=0;
            --j;
        }
        v[j]=1;
        for(int i=0; i<=n-1;++i){
            if(a==1 && v[i]!=0) break;
            else if(a==1 && v[i]==0) a=0;
            else if(v[i]==0) a=1;
        }
        if(a==0){
            ++s;
            if(c==2){
                if(d==1){
                    for(int i=0; i<n; ++i){ pr[i]=v[i]; cout<<int(pr[i]);}
                    d=2;
                }
                for(int i=0; i<n; ++i) { if(m[i]==v[i])b=0; else{b=1; break;}}
                if(b==0){
                    if(int(pr[0])==-1) cout<<"-1\n";
                    else {for(int i=0 ; i<n; ++i) cout<<int(pr[i]); cout<<"\n";}
                    d=1;
                }
            }
            for(int i=0; i<n; ++i) pr[i]=v[i];
        }
        a=0;
        ++k;
    }
    if(c==1) cout<<s%1000000007;
    else if(d==1) cout<<"-1";
    return 0;
}*/