当前位置: 首页 > 工具软件 > Grand > 使用案例 >

C++ Grand Garden | AtCoder

终弘厚
2023-12-01

Time Limit: 2 sec / Memory Limit: 1024 MB

Problem Statement

In a flower bed, there are N flowers, numbered 1,2,......,N. Initially, the heights of all flowers are 0. You are given a sequence h={h1​,h2​,h3​,......} as input. You would like to change the height of Flower k to hk​ for all k(1≤k≤N), by repeating the following "watering" operation:

  • Specify integers l and r. Increase the height of Flower x by 1 for all x such that l≤x≤r.

Find the minimum number of watering operations required to satisfy the condition.

Constraints

  • 1≤N≤100
  • 0≤hi​≤100
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
h1​ h2​ h3​ ............ hN​

Output

Print the minimum number of watering operations required to satisfy the condition.


Sample Input 1 

4
1 2 2 1

Sample Output 1 

2

The minimum number of watering operations required is 2. One way to achieve it is:

  • Perform the operation with (l,r)=(1,3).
  • Perform the operation with (l,r)=(2,4).

Sample Input 2 

5
3 1 2 3 1

Sample Output 2 

5

Sample Input 3 

8
4 23 75 0 23 96 50 100

Sample Output 3 

221

Solution:

#include<bits/stdc++.h>
using namespace std;
int n,h[105],l,r,g[105],cnt;
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++)scanf("%d",&h[i]);
	for(int i=1;i<=n;i++){
		for(int j=i;g[i]<h[i];j++){
			for(int k=i;h[k]!=g[k];k++){
				g[k]++;
			}
			cnt++;
		}
	}
	printf("%d",cnt);
	return 0;
}

 类似资料: