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