#include #include #include using namespace std; void countingSort(vector &arr, int exp) { int n = arr.size(); vector output(n); int count[10] = {0}; for (int i = 0; i < n; i++) count[(arr[i]/exp)%10]++; for (int i = 1; i < 10; i++) count[i] += count[i-1]; for (int i = n-1; i >= 0; i--) { output[count[(arr[i]/exp)%10] - 1] = arr[i]; count[(arr[i]/exp)%10]--; } for (int i = 0; i < n; i++) arr[i] = output[i]; } void radixSort(vector &arr) { int maxVal = *max_element(arr.begin(), arr.end()); int exp = 1; while(maxVal >= exp) { countingSort(arr, exp); exp *= 10; } } int main() { int n; cin >> n; vector arr(n); for(int i=0; i> arr[i]; radixSort(arr); for(int i=0; i