题目意思就是说一些学生拍照片,每个人拍的照片都是连续的建筑,现给出每栋楼上照片中建筑的数目,求最少的拍照人数。


开始怎么看怎么复杂,后来在草稿纸上画了一下图想了想,如果把照片平摊在平面上,那不就相当于跳格子吗,跳到比当前高的就加,矮的就更新,这样就OK了。


地址:http://codeforces.com/gym/101149/problem/J


代码:

StatusAccepted
Time46ms
Memory2056kB
Length333


#include <iostream>
#include <cstdio>
using namespace std;
typedef long long LL;
LL now, ans;
int n, x;
int main()
{
    while(~scanf("%d", &n)){
        ans=now=0;
        while(n--){
            scanf("%d", &x);
            if(x>now)ans+=(x-now);
            now=x;
        }
        printf("%lld\n", ans);
    }
    return 0;
}