codeforces 1082C Multi-Subject Competition 字首和
阿新 • • 發佈:2018-12-19
題目:
題意:
給出一些人的擅長的科目和得分,求最多能得多少分,並且所選的科目的人數必須相同。
程式碼如下:
#include <cstring> #include <cstdio> #include <algorithm> #include <vector> using namespace std; const int maxn=1e5+5; int n,m; vector<int> v[maxn]; typedef long long ll; ll sum[maxn]; ll ans=0; int compare (int a,int b) { return a>b; } int main() { memset (sum,0,sizeof(sum)); scanf("%d%d",&n,&m); for (int i=0;i<n;i++) { int s,r; scanf("%d%d",&s,&r); v[s].push_back(r); } for (int i=1;i<=m;i++) { sort(v[i].begin(),v[i].end(),compare); ll cnt=0; for (int j=0;j<v[i].size();j++) { cnt+=v[i][j]; if(cnt>0) { sum[j+1]+=cnt; ans=max(sum[j+1],ans); } else { break; } } } printf("%lld\n",ans); return 0; }