Pagini recente » Cod sursa (job #2923418) | Cod sursa (job #1138972) | Cod sursa (job #1870574) | Cod sursa (job #2881553) | Cod sursa (job #1043892)
#include<fstream>
#include<cmath>
#define dim 500100
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long v[dim],s[dim];
long Lung,l,i,j,minu,minu2,n,stop,pos;
inline long minim(long a,long b) {
if(a<b)
return a;
return b;
}
int main () {
f>>n;
l=sqrt(n);
for(i=0;i<n;++i){
f>>v[i];
pos=i/l;
if(!s[pos])
s[pos]=v[i];
else
s[pos]=minim(s[pos],v[i]);
}
Lung=(n)/l;
for(i=0;i<n;++i) {
minu=99999999;
for(j=0;j<Lung;++j) {
if(s[j]<minu){
minu=s[j];
pos=j;
}
}
g<<minu<<" ";
stop=0;
minu2=99999999;
for(j=l*(pos);j<(pos+1)*l && j<n;++j) {
if(v[j]==minu && stop==0) {
v[j]=9999999;
stop=1;
}
else {
if(v[j]<=minu2) {
minu2=v[j];
}
}
}
s[pos]=minu2;
}
}