Problem E: 985的买饮料难题
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 233 Solved: 123
Submit Status Web Board
Description
天气太热了,985制定了对未来的规划即第i天喝a[i]瓶饮料。为了节约开支,他打听到了第i天每瓶饮料的价格p[i]。
为了不让自己的规划落空,他想知道这n天他至少要花多少钱。
精明的985可以选择在任意一天买数目不限的饮料,而且他有一个神奇的冰箱,可以将提前购买的饮料保存下来(至少在这n天里是可以饮用的)。
Input
第一行输入一个整数t,代表有t组测试数据。
每组数据第一行输入一个整数n代表规划的总天数,接下来有n行,每行输入两个整数a[],p[]分别代表上面提到的信息。
注:1 <= t <= 30,1 <= n <= 1000,1 <= a[],p[] <= 100。
Output
输出一个整数代表最后的结果。
Sample Input
2225 5694 17539 2195 8973 909 5585 32
Sample Output
29986321
题解:因为饮料不会过期,所以总是存便宜的饮料。再遇到更便宜的更新即可
#include<cstdio>
#include<cstring>
#include<queue>
#include<stack>
#include<cmath>
#include<vector>
#include<algorithm>
using namespace std;
#define CLR(a,b) memset(a,b,sizeof(a))
int main()
{
int u;
int a,p;
scanf("%d",&u);
while(u--)
{
int n;
scanf("%d",&n);
int minn=110; //记录最便宜的饮料价格
int ans=0;
for(int i=1;i<=n;i++)
{
scanf("%d %d",&a,&p);
minn=min(minn,p);
ans+=a*minn; //数量乘以价格
}
printf("%d\n",ans);
}
return 0;
}