Дано целое нечетное число n и последовательность a [1] , a [2] , … , a [n] . Назовем последовательность красивой, если для каждого четного i верно, что a − 1 < a > a[i+1],например последовательность ( 1 , 3 , 1 , 5 , 2 ) является красивой, а последовательности ( 3 , 1 , 3 ) , ( 1 , 2 , 2 ) , ( 1 , 3 , 5 ) — нет. Вам необходимо понять, можно ли сделать из данной Вам последовательности красивую перестановкой элементов.
Формат входных данных
В первой строке дано единственное число n ( 1 ≤ n ≤ 10^5 ) Во второй строке дано n чисел— a[1] , a [2] , … , a [n] ( 1 ≤ a[ i] ≤ 10^9 )
Формат выходных данных
В единственной строке выведите «Yes», если это возможно — «No» иначе.
#include
#include
#include
using namespace std;
int main() {
size_t n;
cin >> n;
vector seq;
for (auto& x : seq) cin >> x;
sort(seq.begin(), seq.end(), greater());
const auto m = n >> 1;
auto res = seq[m] > seq[m + 1] && seq[m] < seq.front();
if (!res) {
size_t i = 0, j = m;
while (i < m) {
if (seq == seq[j]) break;
++i;
++j;
}
res = i == m;
}
puts(res ? "Yes" : "No");
}
n и k не инициализированы и содержат мусор, а вы этими значениями резервируете память, а потом вводите их же. Миллиард - это максимальное и минимальное значение элементов, а не размер массива. С таким r есть выход за пределы . А самое главное - всё остальное нечитабельно, ибо, похоже, вы код поместили туда, где должен изменяться счётчик цикла, скобки друг другу не соответствуют. Исправил ваш код. Второй массив убрал, так как на ходу можно ответ выводить, ведь, судя по примеру, проверяет решение не человек. И да, в таком случае печатать можно только то, что требует тест, строго соблюдая форматирование. Также, не советую большие массивы на стеке заводить.
#include <iostream>
using namespace std;
int main() {
int a[100000], n, k;
cin >> n >> k;
for (int i = 0; i < n; i++)
cin >> a;
for (int i = 0; i < k; i++) {
int item;
cin >> item;
int l = 0, r = n, x = 0;
while (l < r) {
x = l + (r - l) / 2;
if (a[x] == item)
break;
else if (a[x] < item)
l = x + 1;
else
r = x;
}
cout << (a[x] == item ? "YES" : "NO" << '\n';
}