和那个摘果子问题是一样的,比较水的题目。注意开long long 不然数据太大又会wa掉 AC代码:
#include <iostream>
#include<utility>
#include <algorithm>
using namespace std;
typedef long long int ll;
bool cmp(pair<int,int > a,pair<int,int> b);
int main()
{
ll sum,n;
cin>>sum>>n;
ll cost=0;
pair<int ,int > t[n+1];
for(int i=1;i<=n;i++)
{
cin>>t[i].first>>t[i].second; // 输入单价和牛奶量
}
sort(t+1,t+n+1,cmp);
for(int i=1;i<=n;i++)
{
if(sum>=t[i].second)
{
cost+=t[i].second*t[i].first;
sum-=t[i].second;
}
else
{
cost+=sum*t[i].first;
break;
}
}
cout<<cost<<endl;
return 0;
}
bool cmp(pair<int,int > a,pair<int,int> b)
{
return a.first<b.first;
}