Задача С++
Монобильярд
Стол для монобильярда, установленный в игровом доме уездного города N, оказался очень прибыльным вложением. До того, как в городе появился небезызвестный господин Чичиков. Раз за разом он выигрывал, и хозяин, подсчитывая убытки, понимал, что дело тут нечисто. Однако уличить подлеца в жульничестве не удавалось до прибытия в город N ревизора из Петербурга.
Правила игры в монобильярд очень нужно последовательно закатить в единственную лузу шары с номерами 1, 2, …, N (именно в этом порядке). Пока господин Чичиков играл, ревизор несколько раз подходил к столу и забирал из лузы последний закатившийся туда шар. В конце концов, оказалось, что Чичиков закатил в лузу все шары, а ревизор все шары достал и обследовал. Аферист утверждал, что закатил шары в правильном порядке. Хозяин понял, что это его шанс: ревизор должен помнить, в каком порядке он доставал шары. Однако так ли легко будет доказать жульничество?
Формат входных данных
В первой строке записано целое число N — количество бильярдных шаров (1 ≤ N ≤ 100000). В следующих N строках даны номера этих шаров в том порядке, в котором ревизор забирал их из лузы.
Формат результата
Выведите слово «Cheater», если Чичиков не мог закатить все N шаров в правильном порядке. Иначе выведите «Not a proof».
Примеры
Входные данные
2
2
1
Результат работы
Not a proof
Входные данные
3
3
1
2
Результат работы
Cheater
program hungry;
var
time: real;
begin
write('Который час? ');
readln(time);
if (time < 0) or (time >= 24) or (frac(time) >= 0.6) then
writeln('У кого-то часы барахлят...')
else if (time >= 7) and (time < 13) or (time >= 15) and (time < 19) then
writeln('Отлично, булочная работает!')
else if (time >= 8) and (time < 14) or (time >= 16) and (time < 20) then
writeln('Можно до хлебного магазина дойти.')
else if (time >= 8) and (time < 24) then
writeln('Голод не тетка, придется в супермаркет ехать...')
else
writeln('Извини, друг, но сегодня хлеба не будет, сиди дома!');
end.
import static java.lang.Math.*;
class MySolution {
public static void main(String[] args) {
double min = sin(pow(0, 2) + 5 * 0) * cos(3 * pow(0, 2) - 0), minArg = 0;
for (double x = 0.4; x < 8; x += 0.4) {
double y = sin(pow(x, 2) + 5 * x) * cos(3*pow(x, 2) - x);
if (y < min) {
min = y;
minArg = x;
}
}
double[] A = new double[1];
A[0] = min;
System.out.printf("Наименьшее значение функции: " + A[0] + "\nПри значении аргумента x: " + "%.1f", minArg);
}
}