Submission #1336919

#TimeUsernameProblemLanguageResultExecution timeMemory
1336919Nipphitch만두 (JOI14_ho_t2)C++20
0 / 100
2 ms348 KiB
#include <bits/stdc++.h>
using namespace std;
const int M=505;

int n,m,c[M],e[M],ans;
vector <int> box;
priority_queue <int> pq;

bool cmp(int idx1,int idx2){
    int sum1=e[idx1]*c[idx2],sum2=e[idx2]*c[idx1];
    if(sum1!=sum2) return sum1<sum2;
    else return c[idx1]<c[idx2];
}

signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin >> n >> m;
    for(int i=1;i<=n;i++){
        int x;
        cin >> x;
        pq.push(x);
    }
    for(int i=1;i<=m;i++){
        box.push_back(i);
        cin >> c[i] >> e[i];
    }
    sort(box.begin(),box.end(),cmp);
    for(int idx:box){
        int sum=0;
        for(int i=0;i<c[idx] && pq.size();i++){
            sum+=pq.top();
            pq.pop();
        }
        if(sum>e[idx]) ans+=sum-e[idx];
        if(pq.empty() || sum<e[idx]) break;
    }
    cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...