C - 그랜드 가든
꽃 침대에서, 거기에 N N의 번호 꽃, 1 , 2 , . . . . . . , N 1, 2, ......, N . 처음에는 모든 꽃의 높이입니다 0 0 . 사용자는 일련의 주어진 시간 = { H (1) , H (2) , H (3) , . . . . . . } H = {H1, H2, H3, ...} 를 입력으로. 당신은 꽃의 높이를 변경하려면 케이 케이 에 시간 KHK 모든 케이케이 (1≤ k 값 ≤의 N ) (1≤k≤N) 다음 "물"동작을 반복함으로써 :
- 정수 지정 리터의 L 과 R의 R을 . 꽃의 높이 증가 X X 의해 1 1 모든 X의 X 되도록 리터 ≤에서 의 X ≤의 R의 l≤x≤r .
조건을 만족하는 데 필요한 물을 작업의 최소 수를 찾을 수 있습니다.
제약
- 1 ≤ N ≤ 100 1≤N≤100
- 0 ≤의 시간 내가 ≤ 100 0≤hi≤100을
- 입력의 모든 값은 정수입니다.
입력
입력은 다음과 같은 형식의 표준 입력에서 주어진다 :
N N의 H 1 (H1)의 H 2 수소 H 3 H3 . . . . . . ...... 시간 N의 공
산출
조건을 만족하는 데 필요한 물을 작업의 최소 수를 인쇄합니다.
입력
4 1 2 2 1
산출
이
입력
8 4 23 75 0 23 96 50 100
산출
(221)
문제의 의미 임의 간격 [L, R] 1 최소 횟수로 표기 주어진 값 간격을 제공하고자, 추가]
AC 코드 :
#INCLUDE <비트 / stdc ++ H.> 사용 스페이스 성병; #DEFINE가 긴 int로 긴 INT 도착 [ 152,052 ]; 서명 () {메인 INT ANS = 0 ; INT의 N; CIN >> N; 위한 ( int로 I = 1 ; 나는 <= N; ++ i가 ) 는 scanf를 ( " %의 LLD " , 도착 [I]); INT 임시의 도착 = [ 1 ]; 위한 ( int로 I = 1 ; 나는 <= N; 내가 ++ ) { 경우 (I == N) {//에서 공개 판정 ANS + = 최대 (ARR [I], TEMP) } 다른 { IF (ARR [I]> = TEMP) { TEMP = ARR [I]; } 다른 { ANS + = ABS ( ARR [I] - TEMP는) // 수가 더 지불 감산 TEMP를 = ARR [I]를 } } } COUT << ANS는, 반환 0 ; }
코드 2
#INCLUDE <비트 / stdc ++ H.> 사용 스페이스 성병; #DEFINE N 515,155 INT의 도착 [N]; INT 의 main () { INT의 N; CIN >> N; INT ANS = 0 ; scanf와 ( " %의 D " , 도착 [ 1 ]); 경우 (N 개의 == 1 ) { COUT << 도착 [ 1 ]; 반환 0 ; } INT의 임시 도착 = [ 1 ]; 위한 ( int로 난 = 2 나 = <N; ++ i가 ) { 는 scanf ( " %의 D " , 도착 [I]); 경우 (I == N) { ANS + = 최대 (온도, 도착 [I]); 휴식 ; } 경우 (도착 [I] < 온도) { ANS + = temp- 도착 [I]; 임시 =의 도착 [I]; } 다른 { 임시 =의 도착 [I]; } } COUT << ANS; 반환 0 ; }