Pagini recente » Cod sursa (job #73434) | Cod sursa (job #3201147) | Cod sursa (job #1215573) | Cod sursa (job #2876210) | Cod sursa (job #608312)
Cod sursa(job #608312)
#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;
}