Вот задача
Дано целое нечетное число n и последовательность a [1] , a [2] , … , a [n] . Назовем последовательность красивой, если для каждого четного i верно, что a [i] − 1 < a [i] > 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 <iostream>
#include <algorithm>
using namespace std;
int main() {
int n,k=0,a[100000];
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
k=n/2;
sort(a,a+n);
if(a[n-1-k]!=a[n-k])cout<<"Yes";else cout<<"No";
return 0;
}
Выдает ошибку на 31 тесте подскажите где нужно ее исправить
C/C++
Программирование на C++
#include
#include
#include
using namespace std;
int main() {
size_t n;
cin >> n;
vector seq(n);
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[i] == seq[j]) break;
++i;
++j;
}
res = i == m;
}
puts(res ? "Yes" : "No");
}
Никита Дроздов
можешь пожалуйста сделать полегче решение?)
#include
#include
using namespace std;
bool shine(const map& mapa, int num)
{
for (auto i = mapa.rbegin(); i != mapa.rend(); ++i)
{
num -= i->second;
if (!num) return true;
if (num < 0) return false;
}
}
int main()
{
int n;
cin >> n;
map mapa;
auto big_nums = n / 2;
while (n--)
{
int tmp;
cin >> tmp;
++mapa[tmp];
}
cout
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[i];
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';
}
}
#include <iostream>
using namespace std;
int main() {
int a[100000], n, k;
cin >> n >> k;
for (int i = 0; i < n; i++)
cin >> a[i];
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';
}
}
Никита Дроздов
а зачем ввод item если этого не требуется в задаче
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
int a[100000];
for (int i = 0; i < n; i++)
cin >> a[i];
sort(a, a + n);
bool possible = true;
for (int i = 0; i < n - 1; i++) {
if (i % 2 == 0) {
if (a[i] <= a[i + 1]) {
possible = false;
break;
}
}
}
if (possible)
cout << "Yes";
else
cout << "No";
return 0;
}
Попробуй так
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
int a[100000];
for (int i = 0; i < n; i++)
cin >> a[i];
sort(a, a + n);
bool possible = true;
for (int i = 0; i < n - 1; i++) {
if (i % 2 == 0) {
if (a[i] <= a[i + 1]) {
possible = false;
break;
}
}
}
if (possible)
cout << "Yes";
else
cout << "No";
return 0;
}
Попробуй так
дай тестирущую систему пожалуйста
Какие задачи решил?
Изменено:
Я только сейчас понял, что это яндекс
Чтобы код читался вставляй его в рамку
Какие задачи решил?
Изменено:
Я только сейчас понял, что это яндекс
Чтобы код читался вставляй его в рамку
рамка
Похожие вопросы
- Программирование на C++
- Программирование на C++
- Помоги написать лабу по программированию на c++
- Помогите решить задачу по программированию на C++
- Программирование на C. Помогите бездарю
- На каком языке программирования написан C (Си)?
- Программирование на c++
- Программирование на C++
- Помогите с программированием на C++
- Задание по программированию язык C/СИ