Cod sursa(job #854476)

Utilizator costel93FMI - Dumea Eduard Constantin costel93 Data 13 ianuarie 2013 17:31:03
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<fstream>
  
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");

int inf=2147483648, poz, val, minim[1050000], v[500005];
  
  
void actualizare(int nod,int st, int dr)
{
    if(st==dr)
		minim[nod]=v[st];
	else
	{
		int m;
		m=(st+dr)/2;
		actualizare(nod*2,st,m);
		actualizare(nod*2+1,m+1,dr);
		minim[nod]=(minim[nod*2]<minim[nod*2+1]?minim[nod*2]:minim[nod*2+1]);
        }
}          
  
void sterge(int nod,int st, int dr)
{
    if(st==dr)
		minim[nod]=inf;
	else
	{
		unsigned int m;
		m=(st+dr)/2;
		if(minim[nod*2]==val)
			sterge(nod*2,st,m);
		else 
			sterge(nod*2+1,m+1,dr);
		minim[nod]=(minim[nod*2]<minim[nod*2+1]?minim[nod*2]:minim[nod*2+1]);
	}
}          
  
int main()
{
	unsigned int n,i;
    f>>n;
	
    for( i = 1; i <= 1049999; i++ )
         minim[i] = inf;
	
	for( i = 1; i <= n; i++ )
         f>>v[i];
	
	actualizare(1,1,n);
	
	for(i=1;i<=n;i++)
    {
		g<<minim[1]<<" ";
		val=minim[1];
        sterge(1,1,n);
    }
    return 0;
}