C++ Помогите с задачачей с платформы Сириус
Статистика
Вася не любит английский язык, но каждый раз старается получить хотя бы четвёрку за четверть, чтобы оставаться ударником. В текущей четверти Вася заметил следующую закономерность: по нечётным дням месяца он получал тройки, а по чётным — четвёрки. Также он помнит, в какие дни он получал эти оценки. Поэтому он выписал на бумажку все эти дни для того, чтобы оценить, сколько у него троек и сколько четвёрок. Помогите Васе это сделать, расположив чётные и нечётные числа в разных строчках. Вася может рассчитывать на оценку 4 , если четвёрок не меньше, чем троек.
Входные данные
В первой строке записано единственное число N — количество элементов целочисленного массива (1⩽N⩽100 ). Вторая строка содержит N чисел, представляющих заданный массив. Каждый элемент массива — натуральное число от 1 до 31 . Все элементы массива разделены пробелами.
Выходные данные
В первой строке выходных данных нужно вывести числа, соответствующие числам месяца, в которые Вася получил тройки, а во второй строке, соответственно, расположить числа месяца, в которые Вася получил четвёрки. В третьей строке нужно вывести оценку, которую получит Вася.

Вот пример моего кода. Я понимаю, что очень длинный и всё можно было бы записать гораздо короче, но я просто перепробовала уже кучу вариаций и это последняя из них самая длинная. Код работает, но платформа не принимает. Помогите пожалуйста исправить.
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, x, z, i = 0;
cin >> n;
vector <int> v(n);
for (i = 0; i < n; i++) {
cin >> v[i];
}
for (i = 0; i < n; i++) {
if (v[i] % 2 != 0) {
cout << v[i] << " ";
}
}
cout << endl;
for (i = 0; i < n; i++) {
if (v[i] % 2 == 0) {
cout << v[i] << " ";
}
}
cout << endl;
x = 0, z = 0;
for (i = 0; i < n; i++) {
if (v[i] % 2 == 0) {
z = z + 1;
}
else x = x + 1;
}
if (z > x ) {
cout << "4";
}
if (z = x ) {
cout << "4";
}
else
cout << "3";
}
Ответы (2 шт):
если помогло, оцени, пожалуйста, мне нужна репутация. Я старался)
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, ne, ch, num=0;
cin >> n; /* ввод n */
vector<int> chet, nec; /* делаю вектора */
for (int i = 0; i < n; i++)
{
cin >> num; /* ввод чисел и проверка на чётность */
if (num % 2 == 0)
{
chet.push_back(num); /* четный идет в конец вектора четных */
}
else
{
nec.push_back(num);
}
}
ch = chet.size(); /* определяю размеры получившихся векторов и приравниваю к переменным для удобства */
ne = nec.size();
for (int i = 0; i < ne; i++) /* вывод значений вектора с нечетными значениями и пробелы */
{
cout << nec[i] << ' ';
}
cout << endl;
for (int i = 0; i < ch; i++)
{
cout << chet[i] << ' ';
}
cout << endl;
if (ch >= ne)
{
cout << "4";
}
else
{
cout << "3";
}
return 0; /* Никите привет от Mike Novi) */
}
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
// odd - массив для нечетных чисел, even - для четных
vector<int> odd, even;
for (int i = 0; i < n; i++) {
int inp;
cin >> inp;
if (inp % 2 == 0) {
even.push_back(inp);
} else {
odd.push_back(inp);
}
}
// вывод нечетных чисел
for (int i = 0; i < (int)odd.size(); i++) {
cout << odd[i] << ' ';
}
cout << endl;
// вывод четных чисел
for (int i = 0; i < (int)even.size(); i++) {
cout << even[i] << ' ';
}
cout << endl;
// подсчет оценки по условию
cout << ((int)even.size() >= (int)odd.size() ? 4 : 3) << endl;
}