Solution of 11462 - Age Sort

Problem Description
source:https://uva.onlinejudge.org/external/114/11462.html

You are given the ages (in years) of all people of a country with at least 1 year of age. You know that no individual in that country lives for 100 or more years. Now, you are given a very simple task of sorting all the ages in ascending order. 

Input 

There are multiple test cases in the input file. Each case starts with an integer n (0 < n ≤ 2000000), the total number of people. In the next line, there are n integers indicating the ages. Input is terminated with a case where n = 0. This case should not be processed. 

Output 

For each case, print a line with n space separated integers. These integers are the ages of that country sorted in ascending order. Warning: Input Data is pretty big (∼ 25 MB) so use faster IO.

Sample Input 


3 4 2 1 5 

2 3 2 3 1 


Sample Output 

1 2 3 4 5 
1 2 2 3 3


Solution:
#include <iostream>
#include<cstdlib>
#include <queue>
#include<cstdio>
using namespace std;

int main ()
{
    priority_queue< long int, vector<long int>, greater<long int> > mypq;
    long int i,n,a;
    while(scanf("%ld",&n)==1)
    {
        if(n==0)
            break;
        for(i=0;i<n;i++)
        {
            scanf("%ld",&a);
            mypq.push(a);
        }
        while (!mypq.empty())
        {
            printf("%ld",mypq.top());
            mypq.pop();
            if(!mypq.empty())
                printf(" ");
        }
        printf("\n");
    }

  return 0;
}
image

No comments:

Post a Comment

Write your comment - Share Knowledge and Experience