2 条题解

  • 1
    @ 2025-12-1 17:06:56
    #include<bits/stdc++.h>
    using namespace std;
    struct abc{
        int d,z;
    }a[20010];
    bool cmp(abc a,abc b){
        return a.d<b.d;
    }
    int main(){
        long long n,m;
        long long s=0;
        cin>>n>>m;
        for(int i=0;i<m;i++)
            cin>>a[i].d>>a[i].z;
        sort(a,a+m,cmp);
        long long i,c=n;
        for(i=0;i<m;i++){
            if(a[i].z>c)
                a[i].z=c;
            c-=a[i].z;
            s+=a[i].z*a[i].d;
        }
        cout<<s;
        return 0;
    }
    
    • 0
      @ 2025-12-1 17:32:24

      copy↓

      #include<bits/stdc++.h>
      using namespace std;
      struct mi{
          int price,num;
      }a[99999999];
      bool cmp(mi x,mi y){
          return x.price<y.price;
      }
      int main(){
          int sum,n,i,tot=0,cost=0;
          cin>>sum>>n;
          for(i=0;i<n;i++){
              cin>>a[i].price>>a[i].num;
          }
          sort(a,a+n,cmp);
          for(i=0;i<n;i++){
              if(sum<a[i].num) a[i].num=sum;
              cost+=a[i].price*a[i].num;
              sum-=a[i].num;
              if(sum==0) break;
          }
          cout<<cost;
      }
      
      • 1

      信息

      ID
      207
      时间
      1000ms
      内存
      125MiB
      难度
      3
      标签
      递交数
      1
      已通过
      1
      上传者