Cod sursa(job #710717)

Utilizator Luncasu_VictorVictor Luncasu Luncasu_Victor Data 10 martie 2012 17:06:15
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <stdio.h>
#include <vector>
#include <algorithm>

std::vector<int> v;
char c[5500000],*p;

bool cmp(int a,int b){if(a>b)return true; else return false;}

int number(char*&p){
    int x=0;
    while('0'<=*p&&*p<='9'){
        x=x*10+*p-'0'; p++;}
    while(*p==' ')p++;
    return x;
}

int main(){
    int n,i,x;
        freopen("algsort.in","r",stdin);
        freopen("algsort.out","w",stdout);
    scanf("%d ",&n);
    fgets(c,5500000,stdin);
    p=c;
    for(i=0;i<n;i++){
        x=number(p);
        v.push_back(x);
        push_heap(v.begin(),v.end(),cmp); }
    for(i=0;i<n;i++){
        printf("%d ",v[0]);
        pop_heap(v.begin(),v.end(),cmp);
        v.pop_back();}
}