Получится ли у ковбоя Джо получить выигрышную последовательность с помощью применения вышеописанной операции ровно один раз?
Формат входных данных
В первой строке дано целое число n (1≤n≤2⋅105) — количество карт в последовательности.
Во второй строке даны n целых чисел a1,a2,…,an (1≤ai≤10^9) — последовательность ковбоя Джо.
В третьей строке даны n целых чисел b1,b2,…,bn (1≤bi≤10^9) — выигрышная последовательность.
Формат выходных данных
Выведите «YES» (без кавычек), если Джо может получить выигрышную последовательность, иначе выведите «NO».
решить задачу на языке программирования Java
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Шаг 1: Чтение входных данных
int n = scanner.nextInt();
int[] a = new int[n];
int[] b = new int[n];
for (int i = 0; i < n; i++) {
a[i] = scanner.nextInt();
}
for (int i = 0; i < n; i++) {
b[i] = scanner.nextInt();
}
// Шаг 2: Инициализация переменных
int minPossible = 0;
int maxPossible = Integer.MAX_VALUE;
// Шаг 3: Проверка каждой позиции
for (int i = 0; i < n; i++) {
int minPosition, maxPosition;
if (i == 0) {
minPosition = b[0];
} else if (b[i] > b[i-1]) {
minPosition = b[i] - (b[i] - b[i-1]) / 2;
} else {
minPosition = 0;
}
if (i == 0) {
maxPosition = b[0];
} else if (b[i] > b[i-1]) {
maxPosition = b[i] * 2 - b[i-1];
} else {
maxPosition = Integer.MAX_VALUE;
}
// Шаг 3.3: Проверка диапазона значений
if (minPosition > maxPossible || maxPosition < minPossible) {
System.out.println("NO");
return;
}
// Шаг 3.4: Обновление значений minPossible и maxPossible
minPossible = Math.max(minPossible, minPosition);
maxPossible = Math.min(maxPossible, maxPosition);
}
// Шаг 4: Вывод результата
if (minPossible <= maxPossible) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет