Cod sursa(job #643964)

Utilizator AnaTudorTudor Ana Maria Mihaela AnaTudor Data 4 decembrie 2011 22:03:51
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include<stdio.h>
#include<vector>
# define MAX 500151
using namespace std;

vector<int> G[MAX],Count[MAX];
int n,x,mi=1<<31 - 1,ma=-1,poz;

int gasire(int x)
{
     int i;
     int a=x% MAX;
     for (i=0;i<G[a].size();++i)
       if (G[a][i]==x)
       return i;
     return G[a].size();
}

void inserare(int x)
{
    int a=x % MAX, i =gasire(x) ;
     if (i==G[a].size()){
      G[a].push_back(x);
      Count[a].push_back(1);
     }
    else
     Count[a][i]++;
}

int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
     scanf("%d ",&n);
     for (int i=1;i<=n;++i)
     {
          scanf("%d ",&x);
          if (x<mi)
            mi=x;
          if (x>ma)
            ma=x;
          inserare(x);

     }
  for (int i=mi;i<=ma;++i)
    { int ok=0;
       for (int j=0;j<G[i%MAX].size();++j)
         if(G[i%MAX][j]==i){
             ok=1;
             poz=j;
        }

       if (ok==1)
        for (int j=1;j<=Count[i%MAX][poz];++j)
          printf("%d ",i);
    }
    return 0;
}