Регистрация
8 Дек 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
Вот задача

Дано целое нечетное число 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 <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;

k=n/2;

sort(a,a+n);

if(a[n-1-k]!=a[n-k])cout<<"Yes";else cout<<"No";



return 0;

}

Выдает ошибку на 31 тесте подскажите где нужно ее исправить
 
#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 == seq[j]) break;
++i;
++j;
}
res = i == m;
}
puts(res ? "Yes" : "No");
}
 
n и k не инициализированы и содержат мусор, а вы этими значениями резервируете память, а потом вводите их же. Миллиард - это максимальное и минимальное значение элементов, а не размер массива. С таким r есть выход за пределы . А самое главное - всё остальное нечитабельно, ибо, похоже, вы код поместили туда, где должен изменяться счётчик цикла, скобки друг другу не соответствуют. Исправил ваш код. Второй массив убрал, так как на ходу можно ответ выводить, ведь, судя по примеру, проверяет решение не человек. И да, в таком случае печатать можно только то, что требует тест, строго соблюдая форматирование. Также, не советую большие массивы на стеке заводить.

#include &lt;iostream&gt;

using namespace std;

int main() {
int a[100000], n, k;
cin &gt;&gt; n &gt;&gt; k;

for (int i = 0; i &lt; n; i++)
cin &gt;&gt; a;

for (int i = 0; i &lt; k; i++) {
int item;
cin &gt;&gt; item;
int l = 0, r = n, x = 0;

while (l &lt; r) {
x = l + (r - l) / 2;
if (a[x] == item)
break;
else if (a[x] &lt; item)
l = x + 1;
else
r = x;
}
cout &lt;&lt; (a[x] == item ? &#34;YES&#34; : &#34;NO&#34;) &lt;&lt; &#39;\n&#39;;
}

}
 
#include &lt;iostream&gt;
#include &lt;algorithm&gt;
using namespace std;

int main() {
int n;
cin &gt;&gt; n;
int a[100000];

for (int i = 0; i &lt; n; i++)
cin &gt;&gt; a;

sort(a, a + n);

bool possible = true;

for (int i = 0; i &lt; n - 1; i++) {
if (i % 2 == 0) {
if (a &lt;= a[i + 1]) {
possible = false;
break;
}
}
}

if (possible)
cout &lt;&lt; &#34;Yes&#34;;
else
cout &lt;&lt; &#34;No&#34;;

return 0;
}
Попробуй так
 
дай тестирущую систему пожалуйста
Какие задачи решил?
Изменено:
Я только сейчас понял, что это яндекс
Чтобы код читался вставляй его в рамку

рамка
 
Назад
Сверху