Cod sursa(job #2055314)

Utilizator ScarymovieMocanu Alexandru Scarymovie Data 3 noiembrie 2017 01:00:46
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include <bits/stdc++.h>
#define NRMARE INT_MAX
using namespace std;
vector<int> v;deque<int> l[10];int n,Mini,Min[1000];
ifstream f("algsort.in");
ofstream g("algsort.out");
void smen_batog()
{
    double radical=sqrt(n);Mini=NRMARE;int i,j,k;
    for(i=0;i<radical;++i)
        {
            Min[i]=NRMARE;
            for(j=i*radical;j<=(i+1)*radical-1;++j)
                if(Min[i]>v[j])
                    {
                        Min[i]=v[j];
                        if(Mini>Min[i]){Mini=Min[i];k=i;}
                    }
        }
    while(n)
        {
            g<<Mini<<' ';Min[k]=NRMARE;int ok=1;
            for(i=k*radical;i<=(k+1)*radical-1;++i)
                {if(Mini==v[i] && ok) {v[i]=NRMARE;ok=0;}
                 if(Min[k]>v[i]) Min[k]=v[i];}
            Mini=NRMARE;
            for(i=0;i<radical;++i) if(Mini>Min[i]) Mini=Min[i],k=i;
            n--;
        }
}
int main()
{
    int i;
    f>>n;v.resize(n);
    for(i=0;i<n;++i)
        f>>v[i];
    smen_batog();
    return 0;
}