题目链接:
http://codeforces.com/problemset/problem/588/A
解题思路:
这个题目很简单,
就是前一天肉的价格比后面几天低还是高,如果是高的话,只要买当天份量的肉就好;如果低的话,计算出低多少天,然后买低多少天肉的份量就OK啦。
#include <cstdio> #include <iostream> using namespace std; #define L long long struct node { int x,y; }a[100000+10]; int main() { int n,i,j,k; L sum=0; cin>>n; for(i=0;i<n;i++) scanf("%d%d",&a[i].x,&a[i].y); for(i=0;i<n;i+=k) { k=1; sum+=a[i].x*a[i].y; if(a[i].y<a[i+1].y) for(j=i+1;j<n;j++) { if(a[i].y<a[j].y) {sum+=a[j].x*a[i].y;k++;} else break; } } cout<<sum<<endl; return 0; }