题目地址:http://vjudge.net/problem/UVA-11462
#include <bits/stdc++.h>
using namespace std;
#define REP(i,a,b) for(int i=a;i<=(b);++i)
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
const int maxn=100+5;
int c[maxn];
int main(int argc, char const *argv[])
{
int n;
while(scanf("%d",&n)==1&&n){
REP(i,1,n){
int x;
scanf("%d",&x);
c[x]++;
}
bool first=true;
REP(i,1,100) REP(j,1,c[i]) {
if(!first) putchar(' ');
first=false;
printf("%d", i);
}
putchar('\n');
memset(c,0,sizeof(c));
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define REP(i,a,b) for(int i=a;i<=(b);++i)
#define REPD(i,a,b) for(int i=a;i>=(b);--i)
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
const int maxn=100+5;
int c[maxn];
int inline readInt(){
char ch;
do{ch=getchar();}while(!isdigit(ch));
int x=0;
do{x=x*10+ch-'0';ch=getchar();}while(isdigit(ch));
return x;
}
int buf[10];
int inline printInt(int n){
int p=0;
if(n==0) p++;
while(n){buf[p++]=n%10;n/=10;}
REPD(i,p-1,0) putchar('0'+buf[i]);
}
int main(int argc, char const *argv[])
{
int n;
while(n=readInt()){
REP(i,1,n) c[readInt()]++;
bool first=true;
REP(i,1,100) REP(j,1,c[i]) {
if(!first) putchar(' ');
first=false;
printInt(i);
}
putchar('\n');
memset(c,0,sizeof(c));
}
return 0;
}