就是一道简单贪心,肯定是要先买价格低牛奶,所以先按价格排序就行了。
代码如下:
/*
ID: 15674811
LANG: C++
TASK: milk
*/
#include<cstring>
#include<cstdio>
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
typedef struct
{
int p;
int num;
}M;
M m[5500];
bool cmp(M m1,M m2)
{
return m1.p<m2.p;
}
int main()
{
ofstream cout("milk.out");
ifstream cin("milk.in");
int n,m1;
while(cin>>n>>m1)
{
for(int i=1;i<=m1;i++)
cin>>m[i].p>>m[i].num;
sort(m+1,m+m1+1,cmp);
int sum=0,price=0;
for(int i=1;i<=m1;i++)
{
if(sum+m[i].num<=n)
{
sum+=m[i].num;
price+=m[i].num*m[i].p;
}
else
{
price+=(n-sum)*m[i].p;
break;
}
}
cout<<price<<endl;
}
return 0;
}
时间: 2024-10-26 01:20:40