算法1
(暴力枚举) $O(n)$
贪心模拟
#include <iostream>
#include <cstring>
#include <algorithm>
#include <set>
using namespace std;
typedef long long LL;
const int N = 1e5 + 10 ;
int a[N] , b[N] ;
int c[10] ;// 统计出现次数
vector<int> p[10] ;
int main(){
int n ; cin >> n ;
LL ans = 0 ;
for(int i=1;i<=n;i++) cin >> a[i] >> b[i] , c[a[i]]++ , p[a[i]].push_back(b[i]) ;
int t = n / 10 ;
for(int i=0;i<10;i++){
if(c[i]>t){
int k = c[i] - t , z = 0 ;
sort(p[i].begin(),p[i].end()) ;
while(k--) ans += p[i][z++] ;
}
}
cout << ans << endl ;
}