过样例但是WA0的看这里
查看原帖
过样例但是WA0的看这里
1022761
wuuk楼主2025/6/30 10:57

题目要求相等元素相对顺序不变

输入:

3
2 2 1

输出:

3 3 3

我的做法使用pair记录元素的值和下标,对pair排序,然后使用排序后的下标对原来下标上的元素重新赋值。这样就能保证每个元素都不同。

vector<pair<int, int>> arr(n + 1);
for (int i = 1; i <= n; i++) {
    cin >> arr[i].first;
    arr[i].second = i; 
}
sort(1 + arr.begin(), arr.end());
for (int i = 1; i <= n; i++) {
    a[arr[i].second] = i;
}

注意输出时行末不能有空格。

2025/6/30 10:57
加载中...