1896: 985的买饮料难题
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 221 Solved: 118
SubmitStatusWeb 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
2
2
25 56
94 17
5
39 21
95 89
73 90
9 55
85 32
Sample Output
2998
6321
代码
#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<string.h>
#include<queue>
#include<string.h>
#include<math.h>
using namespace std;
const int maxn=1005;
int num[maxn];
int price[maxn];
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int N;
scanf("%d",&N);
for(int i=0;i<N;i++)
scanf("%d%d",&num[i],&price[i]);
int sum=0;
for(int i=N-1;i>=0;i--)
{
int min_price=price[i];
for(int j=i-1;j>=0;j--)
min_price=min(min_price,price[j]);
sum+=num[i]*min_price;
}
printf("%d\n",sum);
}
return 0;
}