Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Arrays;
- public class Winecraft {
- public static void main(String[] args) throws IOException {
- BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
- int[] integers = Arrays.stream(reader.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
- boolean[] isTaken = new boolean[integers.length];
- int n = Integer.parseInt(reader.readLine());
- while (true) {
- if (findCount(integers, n) < n) {
- break;
- }
- for (int i = 0; i < n; i++) {
- isTaken = new boolean[integers.length];
- for (int j = 0; j < integers.length; j++) {
- integers[j]++;
- }
- for (int j = 1; j < integers.length-1; j++) {
- int previous = j - 1;
- int next = j + 1;
- int number = integers[j];
- if (integers[j] > integers[next] && integers[j] >integers[previous]) {
- if (integers[next] > 0) {
- integers[j] ++;
- }
- if (integers[previous] > 0) {
- integers[j]++;
- }
- if (!isTaken[next]) {
- integers[next] = Math.max(0, integers[next] - 2);
- isTaken[next] = true;
- } else {
- integers[next] = Math.max(0, integers[next] - 1);
- }
- if (!isTaken[previous]) {
- integers[previous] = Math.max(0, integers[previous] - 2);
- isTaken[previous] = true;
- } else {
- integers[previous] = Math.max(0, integers[previous] - 1);
- }
- }
- }
- }
- }
- //.filter(a -> a > n)
- Arrays.stream(integers).filter(a -> a > n).forEach(a -> System.out.print(a + " "));
- }
- private static int findCount(int[] integers, int n) {
- int count = 0;
- for (int integer : integers) {
- if (integer > n) {
- count++;
- }
- }
- return count;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement