Pagini recente » Cod sursa (job #1090917) | Cod sursa (job #3176033) | Cod sursa (job #2525517) | Cod sursa (job #1175814) | Cod sursa (job #2327686)
#include <fstream>
#define nm 100092
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[5*nm],k=0;
void chg2(int &a,int &b,int &c)
{
a=a+b;
b=a-b;
a=a-b;
c/=2;
}
void chg(int &a,int &b)
{
a=a+b;
b=a-b;
a=a-b;
}
void adauga(int val)
{
v[++k]=val;
int p=k;
while(p&&v[p]<v[p/2])
chg2(v[p],v[p/2],p);
}
void afis()
{
fout<<v[1]<<" ";
v[1]=v[k];
k--;
int p=1;
while((v[p]>v[p*2]||v[p]>v[p*2+1])&&p*2<=k)
{
if(v[2*p]>v[2*p+1])
{
chg(v[2*p+1],v[p]);
p=2*p+1;
}
else
{
chg(v[2*p],v[p]);
p=p*2;
}
}
}
int main()
{
int n,x;
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>x;
adauga(x);
}
for(int i=1;i<=n;i++)
afis();
return 0;
}