2 条题解

  • 4
    @ 2023-9-25 20:46:17

    struct node{

    int milk,money;

    };

    node a[2000000];

    bool cmp(node a, node b){

    return a.money<b.money;

    }

    int main()

    {

    int tot,n;

    cin>>tot>>n;

    for(int i=1;i<=n;i++){

    cin>>a[i].money>>a[i].milk;

    }

    sort(a+1, a+n+1, cmp);

    int ans=0;

    for(int i=1;i<=n;i++){

    if(tot<a[i].milk){

    ans+=tot*a[i].money;

    break;

    }

    else{

    tot-=a[i].milk;

    ans+=a[i].milk*a[i].mone y;

    }

    }

    cout<<ans<<endl;

    答案已提交,得分100分,可放心参考❤️

    我是 Adydv,可以给个好评吗,谢谢啦❤️

    • 0
      @ 2023-3-11 16:32:54
      #include<bits/stdc++.h>
      using namespace std;
      //输入保证正确
      //输出看仔细
      //所有情况都测
      //数组定义,保证正确
      int n, m;
      struct milk{
          int p,a;
      }c[5005];
      bool cmp(milk x,milk y){
          return x.p<y.p;
      }
      int main()
      {
      	cin>> n>> m;
      	for( int i = 1; i <= m; i ++)
      	{
      		 cin >> c[i].p>> c[i].a ;
      	}
      	sort(c+1,c+m+1,cmp);
      //	for( int i = 1; i <= m; i ++)
      //	{
      //		 cout << c[i].p<<" "<< c[i].a <<" ";
      //	}
      	int sum = 0 ;
      	for( int i = 1; i <= m; i ++)
      	{
      		if(n >= c[i].a)
      		{
      			n -= c[i].a ;
      			sum += c[i].p * c[i].a ;
      		}
      		else
      		{
      			sum += n * c[i].p ;
      			break;
      		}
      	}
      	cout << sum;
       	return 0;
      }
      
      
      • 1

      信息

      ID
      229
      时间
      1000ms
      内存
      64MiB
      难度
      2
      标签
      递交数
      102
      已通过
      62
      上传者