Cod sursa(job #1045916)

Utilizator trinca-ciprianFMI - Trinca Ciprian trinca-ciprian Data 2 decembrie 2013 12:36:02
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include<fstream>
#include<math.h>
using namespace std;
fstream f("algsort.in",ios::in);
fstream g("algsort.out",ios::out);

int main()
{
    long v[100],s[100],p[100],n,i,min,pas,j,pi,aux,pn;
    //cin>>n;
    f>>n;
    pas=sqrt(n);
    min=30000;
    for (j=1,i=0,pi=0;i<n;i++,j++)
    {
        //cin>>v[i];
        f>>v[i];
        if (min > v[i]) min=v[i];
        if (j==pas)
        {
            p[pi] = min;
            min = 30000;
            pi++;
            j=0;
        }
    }

    if (n%pas != 0) pn = pas+1;
    else pn = pas;

    for (i=0;i<n;i++)
    {
        min=30000;
        for (pi=0;pi<pn;pi++)
        if (min > p[pi] && p[pi]!=-200)
        {   min=p[pi];
            j=pi;
        }
        s[i]=min;
        min=30000;
        aux=j*pas;
        for (pi=0;pi<pas;pi++)
            {
                if (v[aux+pi] == s[i]) v[aux+pi] = -200;
                else if (min > v[aux+pi] && v[aux+pi] != -200)
                    min = v[aux+pi];
            }
        p[j] = min;

    }
    for (i=0;i<n;i++)
       // cout<<s[i]<<" ";
       g<<s[i]<<" ";
    return 0;
}