import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
public class Main
{
public static final String ROCKSYMBOL
= "▓"; public static final String WATERSYMBOL
= "▒"; public static final String AIRSYMBOL
= "░";
public static void main
(String[] args
) { byte [] cliff = {0, 12, 13, 11, 12, 10, 11, 9, 10, 8, 9, 7, 8, 6, 7, 0};
int CLIFFS = cliff.length;
byte [][] matrix = new byte[CLIFFS][CLIFFS];
for (int column=0; column<CLIFFS; column++) { //подготовка матрицы для красивого вывода
for (int row=0; row<cliff[column]; row++) {
matrix[column][row] = 1;
}
}
for (int row=CLIFFS-1; row>=0; row--) { // красивый вывод
for (int column=0; column<CLIFFS; column++) {
if (matrix
[column
][row
] == 1) System.
out.
print(ROCKSYMBOL
); else System.
out.
print(AIRSYMBOL
); }
}
for (int i = 0; i < CLIFFS; i++){
System.
out.
format("%2d|", cliff
[i
]); }
byte max_value = 0;
byte max_pos = 0;
int [] water_value = new int[CLIFFS];
for (byte i=0; i<CLIFFS; i++) { // вся логика отсюда и до 68 строки
if (cliff[i] == 0) {
byte i_max_value = 0;
byte i_max_pos = 0;
for (byte j = i; j > max_pos; j--) {
if (cliff[j] < i_max_value) {
water_value[j] = i_max_value - cliff[j];
}
if (cliff[j] >= i_max_value) {
i_max_value = cliff[j];
i_max_pos = j;
water_value[j] = 0;
}
}
i_max_value = 0;
i_max_pos = 0;
max_value = 0;
max_pos = 0;
}
else {
if (cliff[i] >= max_value) {
max_value = cliff[i];
max_pos = i;
}
if (cliff[i] < max_value) {
water_value[i] = max_value - cliff[i];
}
}
}
int water = 0;
for (int i = 0; i < CLIFFS; i++){
water += water_value[i];
System.
out.
format("%2d|", water_value
[i
]); }
System.
out.
println("\nwater: " + water
); }
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KcHVibGljIGNsYXNzIE1haW4KewoJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUk9DS1NZTUJPTCA9ICLilpMiOwoJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgV0FURVJTWU1CT0wgPSAi4paSIjsKCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEFJUlNZTUJPTCA9ICLilpEiOwoKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB7CgkJYnl0ZSBbXSBjbGlmZiA9IHswLCAxMiwgMTMsIDExLCAxMiwgMTAsIDExLCA5LCAxMCwgOCwgOSwgNywgOCwgNiwgNywgMH07CgkJaW50IENMSUZGUyA9IGNsaWZmLmxlbmd0aDsKCQlieXRlIFtdW10gbWF0cml4ID0gbmV3IGJ5dGVbQ0xJRkZTXVtDTElGRlNdOwoKCQlmb3IgKGludCBjb2x1bW49MDsgY29sdW1uPENMSUZGUzsgY29sdW1uKyspIHsgLy/Qv9C+0LTQs9C+0YLQvtCy0LrQsCDQvNCw0YLRgNC40YbRiyDQtNC70Y8g0LrRgNCw0YHQuNCy0L7Qs9C+INCy0YvQstC+0LTQsAoJCQlmb3IgKGludCByb3c9MDsgcm93PGNsaWZmW2NvbHVtbl07IHJvdysrKSB7CgkJCQltYXRyaXhbY29sdW1uXVtyb3ddID0gMTsJCQkJCgkJCX0KCQl9CgoJCWZvciAoaW50IHJvdz1DTElGRlMtMTsgcm93Pj0wOyByb3ctLSkgeyAvLyDQutGA0LDRgdC40LLRi9C5INCy0YvQstC+0LQKCQkJU3lzdGVtLm91dC5wcmludGxuKCk7CgkJCWZvciAoaW50IGNvbHVtbj0wOyBjb2x1bW48Q0xJRkZTOyBjb2x1bW4rKykgewoJCQkJaWYgKG1hdHJpeFtjb2x1bW5dW3Jvd10gPT0gMSkgU3lzdGVtLm91dC5wcmludChST0NLU1lNQk9MKTsKCQkJCQllbHNlIFN5c3RlbS5vdXQucHJpbnQoQUlSU1lNQk9MKTsKCQkJfQoJCX0KCgkJU3lzdGVtLm91dC5wcmludGxuKCk7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBDTElGRlM7IGkrKyl7CgkJCVN5c3RlbS5vdXQuZm9ybWF0KCIlMmR8IiwgY2xpZmZbaV0pOwoJCX0KCgkJYnl0ZSBtYXhfdmFsdWUgPSAwOwoJCWJ5dGUgbWF4X3BvcyA9IDA7CgkJaW50IFtdIHdhdGVyX3ZhbHVlID0gbmV3IGludFtDTElGRlNdOwoKCQlmb3IgKGJ5dGUgaT0wOyBpPENMSUZGUzsgaSsrKSB7IC8vINCy0YHRjyDQu9C+0LPQuNC60LAg0L7RgtGB0Y7QtNCwINC4INC00L4gNjgg0YHRgtGA0L7QutC4CgkJCWlmIChjbGlmZltpXSA9PSAwKSB7CgkJCQlieXRlIGlfbWF4X3ZhbHVlID0gMDsKCQkJCWJ5dGUgaV9tYXhfcG9zID0gMDsKCQkJCWZvciAoYnl0ZSBqID0gaTsgaiA+IG1heF9wb3M7IGotLSkgewoJCQkJCWlmIChjbGlmZltqXSA8IGlfbWF4X3ZhbHVlKSB7CgkJCQkJCXdhdGVyX3ZhbHVlW2pdID0gaV9tYXhfdmFsdWUgLSBjbGlmZltqXTsKCQkJCQl9CgkJCQkJaWYgKGNsaWZmW2pdID49IGlfbWF4X3ZhbHVlKSB7CgkJCQkJCWlfbWF4X3ZhbHVlID0gY2xpZmZbal07CgkJCQkJCWlfbWF4X3BvcyA9IGo7CgkJCQkJCXdhdGVyX3ZhbHVlW2pdID0gMDsKCQkJCQl9CgkJCQl9CgkJCQlpX21heF92YWx1ZSA9IDA7CgkJCQlpX21heF9wb3MgPSAwOwoJCQkJbWF4X3ZhbHVlID0gMDsKCQkJCW1heF9wb3MgPSAwOwoJCQl9CgkJCWVsc2UgewoJCQkJaWYgKGNsaWZmW2ldID49IG1heF92YWx1ZSkgewoJCQkJCW1heF92YWx1ZSA9IGNsaWZmW2ldOwoJCQkJCW1heF9wb3MgPSBpOwoJCQkJfQoJCQkJaWYgKGNsaWZmW2ldIDwgbWF4X3ZhbHVlKSB7CgkJCQkJd2F0ZXJfdmFsdWVbaV0gPSBtYXhfdmFsdWUgLSBjbGlmZltpXTsKCQkJCX0KCQkJfQoJCX0KCgkJaW50IHdhdGVyID0gMDsKCQlTeXN0ZW0ub3V0LnByaW50bG4oKTsKCQlmb3IgKGludCBpID0gMDsgaSA8IENMSUZGUzsgaSsrKXsKCQkJd2F0ZXIgKz0gd2F0ZXJfdmFsdWVbaV07CgkJCVN5c3RlbS5vdXQuZm9ybWF0KCIlMmR8Iiwgd2F0ZXJfdmFsdWVbaV0pOwoJCX0KCQlTeXN0ZW0ub3V0LnByaW50bG4oIlxud2F0ZXI6ICIgKyB3YXRlcik7Cgl9Cn0=