题目链接:Codeforces 379C New Year Ratings Change
杂题。
给期望值排序,然后保证期望值不重复而且给予的最少。
#include <iostream> #include <algorithm> #include <stdio.h> using namespace std; const int MAX_N = 3 * 1000000 + 1000; int node[MAX_N]; int cmp(int i,int j) { return node[i] < node[j]; } int n; int arr[MAX_N]; int main() { while(cin >> n) { int temp; for(int i = 0;i < n;i++) { scanf("%d",&node[i]); arr[i] = i; } sort(arr,arr + n,cmp); int k; k = node[arr[0]] + 1; for(int i = 1;i < n;i++) { if(node[arr[i]] < k) node[arr[i]] = k++; else k = node[arr[i]] + 1; } for(int i = 0;i < n - 1;i++) cout << node[i] << " "; cout << node[n - 1] << endl; } return 0; }