Костя подключен к мобильному оператору «Мобайл». Абонентская плата Кости составляет A рублей в месяц. За эту стоимость Костя получает B мегабайт интернет-трафика. Если Костя выйдет за лимит трафика, то каждый следующий мегабайт будет стоить ему C рублей. Костя планирует потратить D мегабайт интернет-трафика в следующий месяц. Помогите ему сосчитать, во сколько рублей ему обойдется интернет.
Вводится 4 целых положительных числа A,B,C,D(1≤A,B,C,D≤100) — стоимость тарифа Кости, размер тарифа Кости, стоимость каждого лишнего мегабайта, размер интернет-трафика Кости в следующем месяце. Числа во входном файле разделены пробелами.
Выведите одно натуральное число — суммарные расходы Кости на интернет.
В первом примере Костя сначала оплатит пакет интернета, после чего потратит на 55 мегабайт больше, чем разрешено по
тарифу. Следовательно, за 55 мегабайт он дополняет отдельно, получившаяся стоимость
100+12×5=160 рублей.
Во втором примере Костя укладывается в тарифный план, поэтому платит только за него.
Ввод
100 10 12 15
Вывод
160
Ввод
100 10 12 1
Вывод
100
import java.util.Arrays;
import java.util.Scanner;
/**
* Задача C. Лифты и переговорки.
*/
public class Exercise3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int t = scanner.nextInt();
int[] floors = new int[n];
for (int i = 0; i < n; i++) {
floors[i] = scanner.nextInt();
}
int k = scanner.nextInt();
scanner.close();
int max = Arrays.stream(floors).reduce(Integer::max).getAsInt();
int min = Arrays.stream(floors).reduce(Integer::min).getAsInt();
int dif = max - min;
int res;
int maxX = max - t;
int minX = t + min;
int x = floors[k - 1];
if (minX >= x || maxX <= x) {
res = max - min;
} else {
int toUp = dif + max - x;
int toDown = dif + x - min;
res = Math.min(toDown, toUp);
}
System.out.println(res);
}
}