1 solutions

  • 0
    @ 2025-11-5 20:17:29

    C++ :

    #include<stdio.h>
    #include<algorithm>
    using namespace  std;
    struct store
    {
     int x;
     int feeds;
     int cents;
    }a[101];
    bool cmp(store al,store a2)
    {
     return al.cents<a2.cents;
    }
    int main()
    {
         int T,i,K,E,N,money;
         scanf("%d",&T);
         while(T--)
         {
              if(scanf("%d %d %d",&K,&E,&N)==EOF) return 0;
              for(i=0;i<N;++i)
              {
               scanf("%d %d %d",&a[i].x,&a[i].feeds,&a[i].cents);
               a[i].cents+=E-a[i].x;//单位点购买one feed ,费用值(运至E)
              }
              sort(a,a+N,cmp);
              money=0;
              for(i=0;i<N;i++)
              {
                   if(a[i].feeds<=K)//购买feeds
                   {
                    money +=a[i].feeds*a[i].cents;
                    K -=a[i].feeds;
                   }
                   else {money +=K*a[i].cents; break;}
              }
              printf("%d\n",money);
          }return 0;
    }
    
    
    • 1

    Information

    ID
    20230
    Time
    3000ms
    Memory
    64MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By