题目描述

话说埃菲尔铁塔小区的房子只有一栋,且只有一层,其中每一家都装有一个***,具体地,如果编号为第i家的人给编号第\(j\)家的人打了电话,\(i \leq j\),当然,也会有些人无聊地自己给自己打电话,那么第\(i,i+1,i+2\),…,\(j-1\),\(j\)号的***都会收到一次信号。现在把每个***的收到信号数都告诉你(即\(A_1\)\(An\)),请问他们至少打了几次电话?

输入输出格式

输入格式:

第一行一个数\(N\),表示用户数。

第二行\(N\)个数,表示***收到的信号数。

输出格式:

一个数,最少的打电话次数。

输入输出样例

输入样例#1:

5
1 2 3 2 1

输出样例#1:

3

输入样例#2:

5
1 4 4 5 1

输出样例#2:

5

说明

对于\(100\%\)的数据,\(1 \leq N \leq 1000\)\(1 \leq A_i \leq 2000\)

思路:双倍经验,NOIP2018 Day1T1

代码:

#include<cstdio>
#include<cctype>
#define maxn 100007
#define ll long long
using namespace std;
int n,a[maxn],ans;
inline int qread() {
    char c=getchar();int num=0,f=1;
    for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
    for(;isdigit(c);c=getchar()) num=num*10+c-'0';
    return num*f;
}
int main() {
    n=qread();
    for(int i=1;i<=n;++i) {
        a[i]=qread();
        if(a[i]>a[i-1]) ans+=a[i]-a[i-1];
    }
    printf("%d\n",ans);
    return 0;
}