第 1 行共二个数值:N,(0<=N<=2,000,000)是需要牛奶的总数;M,(0<= M<=5,000)是提供牛奶的农民个数。
第 2 到 M+1 行:每行二个整数:Pi 和 Ai。
Pi(0<= Pi<=1,000) 是农民 i 的牛奶的单价。
Ai(0 <= Ai <= 2,000,000)是农民 i 一天能卖给Marry的牛奶制造公司的牛奶数量。
单独的一行包含单独的一个整数,表示Marry的牛奶制造公司拿到所需的牛奶所要的最小费用。
100 5 5 20 9 40 3 10 8 80 6 30输出样例#1:
630
USACO Training Section 1.3
吐槽:一开始我是没看懂题目的。。然后才知道是个裸贪心
先冒泡排序一遍(反正数据那么小)。。
然后。。。就做完了
var n,m,i,j,t,t1:longint;
a,b:array[0..5001] of longint;
begin
readln(n,m);
for i:=1 to m do readln(a[i],b[i]);
for i:=1 to m-1 do begin
for j:=i+1 to m do begin
if a[i]>a[j] then begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
t:=b[i];
b[i]:=b[j];
b[j]:=t;
end;
end;
end;
t:=0;
for i:=1 to m do if t+b[i]<=n then begin
t:=t+b[i];
t1:=t1+a[i]*b[i];
end else begin
t1:=t1+(n-t)*a[i];
break;
end;
writeln(t1);
end.