USACO Section 1.3 Mixing Milk

这个,杭电上也有几乎一模一样的题,好像是那题是要买米,同样测试数据太大,不贴上来

 

/*
	ID:linyvxi1
	TASK:milk
	LANG:C++
*/
#include <stdio.h>
#include <algorithm>
using namespace std;
typedef struct Fa{
	int P;
	int A;
}Fa;
Fa fa[5000];
int N,M;
bool cmp(Fa a,Fa b)
{
	return a.P<b.P;
}
int main()
{
	FILE*	fin=fopen("milk.in","r");
	FILE*	fout=fopen("milk.out","w");

	fscanf(fin,"%d%d",&N,&M);
	int i;
	for(i=0;i<M;i++)
		fscanf(fin,"%d%d",&fa[i].P,&fa[i].A);
	sort(fa,fa+M,cmp);
	int cur=0,cost=0;
	for(i=0;i<M;i++){
		if(cur==N)
			break;
		if(N-cur<=fa[i].A){
			cost+=(N-cur)*fa[i].P;
			break;
		}
		else{
			cost+=fa[i].A*fa[i].P;
			cur+=fa[i].A;
		}
	}
	fprintf(fout,"%d\n",cost);
}

  

posted @ 2011-10-29 21:43  linyvxiang  阅读(133)  评论(0编辑  收藏  举报