Codeforces Round #326 (Div. 2) A. Duff and Meat 水题
A. Duff and Meat
Time Limit: 1 Sec
Memory Limit: 256 MB
题目连接
http://codeforces.com/contest/588/problem/A
Description
Duff is addicted to meat! Malek wants to keep her happy for n days. In order to be happy in i-th day, she needs to eat exactly aikilograms of meat.
There is a big shop uptown and Malek wants to buy meat for her from there. In i-th day, they sell meat for pi dollars per kilogram. Malek knows all numbers a1, ..., an and p1, ..., pn. In each day, he can buy arbitrary amount of meat, also he can keep some meat he has for the future.
Malek is a little tired from cooking meat, so he asked for your help. Help him to minimize the total money he spends to keep Duff happy forn days.
Input
The first line of input contains integer n (1 ≤ n ≤ 105), the number of days.
In the next n lines, i-th line contains two integers ai and pi (1 ≤ ai, pi ≤ 100), the amount of meat Duff needs and the cost of meat in that day.
Output
Sample Input
3
1 3
2 2
3 1
Sample Output
10
HINT
题意
每一天你得吃掉a[i]公斤的东西,然后在这天,这个东西的价格为p[i]
然后问你最少花费多少,就可以每天吃a[i]啦
题解:
对于每一天,肯定就用到目前为止的最少价格买啦
扫一遍就好了,边扫边更新
代码:
#include<iostream> #include<math.h> #include<stdio.h> #include<map> using namespace std; long long a[100005]; long long p[100005]; long long minn; int main() { int n; scanf("%d",&n); minn = 9999LL; for(int i=1;i<=n;i++) scanf("%lld%lld",&a[i],&p[i]); long long ans = 0; for(int i=1;i<=n;i++) { minn = min(minn,p[i]); ans += minn*a[i]; } cout<<ans<<endl; }