这个题目主要是IO限制和计数排序。计数排序是线性的。
不过个人觉得没有人会蛋疼到出个IO限制的题目- -
非IO限制的AC
c
const int maxn = 110; int n; int cnt[maxn]; int main() { int temp; while(scanf("%d", &n) == 1 && n) { memset(cnt, 0, sizeof(cnt)); for(int i = 0; i < n;i ++) { scanf("%d", &temp); cnt[temp]++; } for(int i = 1; i < 100; i++) { for(int j = 0; j < cnt[i]; j++) printf("%d%c", i, --n == 0 ? '\n':' '); } } return 0; }
IO限制达成的AC
c
#include <cstdio> #include <algorithm> #include <cstring> #include <cctype> using namespace std; inline int readint() { char c = getchar(); while(!isdigit(c)) c = getchar(); int x = 0; while(isdigit(c)) { x = x * 10 + c - '0'; c = getchar(); } return x; } int buf[10]; inline void writeint(int i) { int p = 0; if(i == 0) p++; else while(i) { buf[p++] = i % 10; i /= 10; } for(int j = p-1; j >= 0; j--) putchar('0' + buf[j]); } const int maxn = 110; int n; int cnt[maxn]; int main() { int temp; while(n = readint()) { memset(cnt, 0, sizeof(cnt)); for(int i = 0; i < n;i ++) { temp = readint(); cnt[temp]++; } int first = 1; for(int i = 1; i < 100; i++) { for(int j = 0; j < cnt[i]; j++) { // printf("%d%c", i, --n == 0 ? '\n':' '); if(!first) putchar(' '); else first = 0; writeint(i); } } printf("\n"); } return 0; }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。