题目描述
有N个孩子站成一排,每个孩子有一个分值。给这些孩子派发糖果,需要满足如下需求:
1、每个孩子至少分到一个糖果
2、分值更高的孩子比他相邻位的孩子获得更多的糖果
求至少需要分发多少糖果?
输入描述:
0,1,0输出描述:
4输入
5,4,1,1输出
7
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String[] str = bf.readLine().split(",");
int[] score = new int[str.length];
int[] candy = new int[str.length];
for(int i=0;i<str.length;i++){
score[i] = Integer.parseInt(str[i]);
candy[i] = 1;
}
for(int i=1;i<str.length;i++){
if(score[i]>score[i-1]&&candy[i]<=candy[i-1]){
candy[i] = candy[i-1]+1;
}
}
// for (int i=0;i<str.length;i++){
// System.out.print(candy[i]+" ");
// }
for(int i=str.length -2;i>=0;i--){
if(score[i]>score[i+1]&&candy[i]<=candy[i+1]){
candy[i] = candy[i+1]+1;
}
}
// for (int i=0;i<str.length;i++){
// System.out.print(candy[i]+" ");
// }
int sum = 0;
for (int i=0;i<str.length;i++){
sum +=candy[i];
}
System.out.println(sum);
}
}