Files
exercises/cs101/dh_00_10_smaller_numbers.cpp
T
2026-09-28 14:05:06 +08:00

51 lines
877 B
C++

#include <algorithm>
#include <iostream>
using namespace std;
struct Number {
int value;
int index;
bool operator<(const Number& other) const {
return value < other.value;
}
};
constexpr int MAX_N = 1001;
int n;
Number numbers[MAX_N];
int answers[MAX_N];
void get_answers() {
sort(numbers, numbers + n);
int real_idx = 0;
for (int i = 0; i < n; i++) {
if (i == 0 || numbers[i].value != numbers[i - 1].value) { real_idx = i; }
answers[numbers[i].index] = real_idx;
}
}
void print_answers() {
for (int i = 0; i < n; i++) {
cout << answers[i] << endl;
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n;
for (int i = 0; i < n; i++) {
cin >> numbers[i].value;
numbers[i].index = i;
}
get_answers();
print_answers();
return 0;
}