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
2
2
25 56
94 17
5
39 21
95 89
73 90
9 55
85 32Sample Output
2998
天气太热了,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
2
2
25 56
94 17
5
39 21
95 89
73 90
9 55
85 32Sample Output
2998
6321
思路:第一天只能用这天的价格买,设一个数记录最便宜的数,对接下来的每一天判断是否小于最便宜价格,小于则按该天价格买,否则按最便宜价格买,不断更新最便宜价格。
代码:
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;
struct st{
int x;
int p;
int sum;
}a[1100];
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
int ans=0;
int min=11100;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i].x,&a[i].p);
if(i==1)
{
ans+=(a[i].p*a[i].x);
if(a[i].p<min)
min=a[i].p;
}
else
{
if(a[i].p<min)
min=a[i].p;
ans+=(a[i].x*min);
}
}
printf("%d\n",ans);
}
return 0;
}