1 条题解

  • 0
    @ 2025-3-5 16:53:35
    #include <bits/stdc++.h>
    
    using namespace std;
    
    const int N = 2e6+10;
    typedef pair<int ,int> PII;
    
    vector<PII> arr(N);
    int n,m;
    
    int main()
    {
      cin>>n>>m;
      for(int i = 0;i<m;++i)
      {
        int x,y = 0;
        cin>>x>>y;
        arr[i] = {x,y};
      }
      int sum = 0;
      sort(arr.begin(),arr.end(),[](const PII& a,const PII&b){
        return a.first < b.first;
      });
    
      for(const auto &t:arr)
      {
        if((n-t.second)>=0){
          sum += (t.first*t.second);
          n -= t.second;
        }
        else
        {
          sum+=(t.first*n);
          n = 0;
        }
        if(n <= 0)
        break; 
      }
      cout << sum << endl;
      return 0;
    }
    

    信息

    ID
    5266
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    51
    已通过
    25
    上传者