一応、問題中にある擬似コードに沿っているつもりなのですが、どこがまずいのかご指摘いただけると嬉しいです。
私が書いているコードです。
#include <stdio.h>
#include <iostream>
using namespace std;
#define MAX_ELEM 10001
int n;
void sort(int A[], int B[], int C[]){
for (int i=0; i<n; i++){
scanf( "%d", &A[i]);
C[A[i]]++;
}
for (int i=1; i<MAX_ELEM; i++){
C[i] = C[i] + C[i-1];
}
for (int i=n-1; i>=0; i--){
int idx = C[A[i]]-1;
B[idx] = A[i];
C[A[i]]--;
}
}
int main(){
scanf( "%d", &n);
int A[n];
int B[n];
int C[MAX_ELEM]; // 0 to 10000
sort(A, B, C);
printf("%d", B[0]);
for (int i=1; i<n; i++){
printf("%s%d", " ", B[i]);
}
printf("\n");
}