Pagini recente » Cod sursa (job #1957356) | Cod sursa (job #3005100) | Cod sursa (job #2202300) | Cod sursa (job #2627005) | Cod sursa (job #1041982)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fi("algsort.in");
ofstream fo("algsort.out");
int v[200002],w[200002],n,x;
void stergere(int i) {
if ((v[2*i]==0)&&(v[2*i+1]==0))
v[i]=0;
else
if ((v[2*i]==0)&&(v[2*i+1]!=0)) {
v[i]=v[2*i+1];
v[2*i+1]=0;
}
else
if ((v[2*i]!=0)&&(v[2*i+1]==0)) {
v[i]=v[2*i];
v[2*i]=0;
}
else
if (v[2*i]<v[2*i+1]) {
v[i]=v[2*i];
stergere(2*i);
}
else {
v[i]=v[2*i+1];
stergere(2*i+1);
}
}
int main()
{
fi>>n;
for (int i=1;i<=n;i++) {
fi>>x;
if (v[i/2]<=x)
v[i]=x;
else {
int j=i;
while (v[j/2]>x) {
v[j]=v[j/2];
v[j/2]=x;
j=j/2;
}
}
}
for (int i=1;i<=n;i++) {
w[i]=v[1];
stergere(1);
}
for (int i=1;i<=n;i++)
fo<<w[i]<<' ';
return 0;
}