Cod sursa(job #608312)

Utilizator proflaurianPanaete Adrian proflaurian Data 16 august 2011 11:55:58
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <cstdio>
#include<deque>
using namespace std;
deque<deque<int> > Q;
deque<int> X,IC(deque<int>,deque<int>);

int main()
{
    freopen("algosort.in","r",stdin);
    freopen("algosort.out","w",stdout);
    int n;scanf("%d",&n);
    X.push_back(0);
    for(;n;n--)
    {
        scanf("%d",&X[0]);
        Q.push_back(X);
    }
    for(;Q.size()>1;)
    {
        Q.push_back(IC(Q[0],Q[1]));
        Q.pop_front();
        Q.pop_front();
    }
    for(;Q[0].size();){printf("%d ",Q[0].front());Q[0].pop_front();}
    return 0;
}
deque<int> IC(deque<int> A,deque<int> B)
{
    deque<int> R;
    R.resize(0);
    for(;A.size()&&B.size();)
    {
        if(A.front()<=B.front()){R.push_back(A.front());A.pop_front();}
        else {R.push_back(B.front());B.pop_front();}
    }
    if(A.size())R.insert(R.end(),A.begin(),A.end());
    if(B.size())R.insert(R.end(),B.begin(),B.end());
    return R;
}