問題
考察
入力されるaを小さいもの順に並べる。
mapを使うことで、その数字が配列の中で何番目の大きさかを判定してあげればよき。
実装
#include <iostream>
#include <map>
#include <algorithm>
#include <vector>
#define ll long long
using namespace std;
ll l = 1000000007;
vector <ll> a[100050] = {};
vector <ll> b[100050] = {};
int main()
{
map<ll, ll> mp;
ll n;
cin >> n;
for (ll i = 0; i < n; i++)
{
ll x;
cin >> x;
a->push_back(x);
b->push_back(x);
}
sort(b->begin(), b->end());
b->erase(unique(b->begin(), b->end()), b->end());
for (ll i = 0; i < b->size(); i++)
{
mp[b->at(i)] = i;
}
for (ll i = 0; i < n; i++)
{
cout << mp[a->at(i)] << endl;
}
}