为什么贪心错了??
查看原帖
为什么贪心错了??
1573626
likerui楼主2024/11/28 20:43
#include<bits/stdc++.h>
using namespace std;
long long n,m,dp[100005],sum;
struct qwe
{
	long long v,p;
}a[10000005];
bool asd(qwe x,qwe y)
{
	if(x.p==y.p) return x.v>y.v;
	else return x.p>y.p;
}
int main(){
    cin>>n>>m; 
    for(int i=1;i<=m;i++)
    {
    	cin>>a[i].v>>a[i].p;
    } 
    sort(a+1,a+n+1,asd); 
    sum=a[1].p*a[1].v;
    for(int i=2;i<=m;i++)
    {
    	n=n-a[i].v*a[i].p;
    	sum=sum+(a[i].p*a[i].v,sum);
    	if(n-a[i].v<=0) break;
    }
    cout<<sum;
    return 0;
}
2024/11/28 20:43
加载中...