记录编号 505349 评测结果 AAWWWWWWWW
题目名称 1537.多关键字基数排序 最终得分 20
用户昵称 KZNS 是否通过 未通过
代码语言 C++ 运行时间 0.327 s
提交时间 2018-08-13 12:31:27 内存使用 1.15 MiB
显示代码纯文本
#include <cstdio>
#include <cstring>
using namespace std;
#define Nmax 100003
#define Mmax 1003
int N, M;
int ls[Nmax];
int ans[Nmax];
int v[Nmax];
int bak[Mmax];
int main() {
    freopen("Bucketsort.in", "r", stdin);
    freopen("Bucketsort.out", "w", stdout);
    scanf("%d %d", &N, &M);
    for (int i = 1; i <= N; i++)
        ls[i] = i;
    for (int i = 0; i < M; i++) {
        memset(bak, 0, sizeof(bak));
        for (int j = 1; j <= N; j++) {
            scanf("%d", &v[j]);
            bak[v[j]]++;
        }
        for (int j = 1; j <= 1000; j++) {
            bak[j] += bak[j-1];
        }
        for (int j = N; j >= 1; j--) {
            ans[bak[v[ls[j]]]--] = ls[j];
        }
        for (int j = 1; j <= N; j++) {
            ls[j] = ans[j];
        }
    }
    for (int i = 1; i <= N; i++) {
        printf("%d ", ls[i]);
    }
    return 0;
}