题目描述
小琪最近迷上了火星,打算给她的朋友们寄一些有火星图案的明信片。网上有n家店铺有这种明信片,各个店铺里这种明信片的价格和库存量都已经知道了。她打算用最少的钱买到这m张明信片,请帮忙计算用多少钱可以买到这m张明信片。
输入要求
第一行有两个整数m和n。其中m表示要购买的明信片的数量,n表示店铺的个数。
以下n行,每行有两个整数,分别表示某店铺里该种明信片的单价和库存量。
输出要求
输出仅一个数,表示小琪需要花的最少的钱数。
输入样例
10 4 4 3 6 2 8 10 3 6
输出样例
36
提示
假设店铺数最多不超过1000家。
代码实现
#include<stdio.h>
int main()
{
int a[1000],b[1000],x,y,i,e,t,s,h,j,sum=0,p;
scanf("%d%d",&x,&y);
for(i=1;i<=y;i++)
scanf("%d%d",&a[i],&b[i]) ;
for(j=1;j<y;j++)
for(e=1;e<y;e++)
{
if(a[e]>a[e+1])
{ t=a[e+1];
a[e+1]=a[e];
a[e]=t;
s=b[e+1];
b[e+1]=b[e];
b[e]=s;
}
}
for(h=1;h<=y;h++)
{
if(x>b[h]) sum=sum+a[h]*b[h];
else {sum=sum+a[h]*x;break;}
x=x-b[h];
}
printf("%d\n",sum);
return 0;
}