Cod sursa(job #854483)

Utilizator costel93FMI - Dumea Eduard Constantin costel93 Data 13 ianuarie 2013 17:36:12
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 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
	{
		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()
{
	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;
}