P1208 [USACO1.3]混合牛奶 Mixing Milk
#include<iostream>
#include<algorithm>
using namespace std;
typedef struct{
int w;
int v;
}milk;
bool comp(milk a,milk b)
{
return a.v<b.v;
}
int n,m;
int main()
{
cin>>n>>m;
milk var[m];
for(int i=0;i<m;i++)
cin>>var[i].v>>var[i].w;
sort(var,var+m,comp);
int sum=0;
int cost=0;int i=0;
for(;i<m;i++)
{
if(sum+var[i].w<=n)
{
sum+=var[i].w;
cost+=var[i].v*var[i].w;
}
else
break;
}
cost+=var[i].v*(n-sum);
cout<<cost;
return 0;
}