#include<iostream>
#include<algorithm>
using namespace std;
pair<int,int>milk[5001];
int main()
{int m,n,i,j,k,minnum,minmoney,need;
while(cin>>n>>m)
{ minnum=0;k=0;minmoney=0;need=0;
for(i=0;i<m;i++)
cin>>milk[i].first>>milk[i].second;
sort(milk,milk+m);
while(k<m)//又是一个等号惹得祸
{
if(minnum<=n)
{ minnum+=milk[k].second;
minmoney+=milk[k].second*milk[k].first;}
else if(minnum>n)
{need=n-(minnum-milk[k-1].second);
minmoney=minmoney-milk[k-1].first*milk[k-1].second+need*milk[k-1].first;}
k++;
}
cout<<minmoney<<endl;
}
return 0;
}
贪心法 hoj1003
最新推荐文章于 2020-08-02 18:12:22 发布