题目描述
话说埃菲尔铁塔小区的房子只有一栋,且只有一层,其中每一家都装有一个***,具体地,如果编号为第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;
}