## Editorial for 20B Rating

Remember to use this editorial

**only**when stuck, and**not to copy-paste code from it**. Please be respectful to the problem author and editorialist.**Submitting an official solution before solving the problem yourself is a bannable offence.**To get the highest possible rating of a person, we get the person who has the highest rating now. Then he/she play \(M\) matches with people. We can simply say that he/she wins all the matches so that his/her score will be maximum.

The only issue that we will encounter is that when matches he/she play are with a competitor who has lower than \(K\) points. To fix this:

- He/she will first play with people who have more than \(K\) points till the person has lower than \(K\) points or no more matches left.
- He/she will play with people in the decreasing order of their score.

```
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int siz = 300005;
ll arr[siz];
ll n, m, k, l, res;
int main(){
ios_base::sync_with_stdio(false); cin.tie(NULL);
cin>>n>>k>>m;
for(int i=0;i<n;i++){
cin>>arr[i];
}
sort(arr, arr+n);
n--;
for(int i=n-1;i>=0;i--){
if(m==0) break;
if(arr[i]<k) break;
while(arr[i]>=k){
arr[i]-=k;
arr[n]+=k;
m--;
}
}
sort(arr, arr+n);
for(int i=n-1;i>=0;i--){
if(m==0) break;
m--;
arr[n]+=arr[i];
}
cout<<arr[n];
}
```