C/C++

Помогите по задачам по c++

1)Введите целое число n и массив n целых чисел. определить количество положительных элементов в первой половине массива
2)создать линейный однонаправленный список из целых чисел. Вставить в список число 12 перед первым элементов, равным 7
3)создать очередь из целых чисел. Определить количество элементов очереди меньше 10. Организовать просмотр данных очереди

Заранее спасибо
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <vector>
#include <forward_list>
#include <queue>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
using namespace std;
int main() {
cout << "n: ";
size_t n;
cin >> n;
puts("");
vector<int> box(n);
cout << "array: ";
for (auto& x : box) cin >> x;
auto pos = 0U;
auto mid = n >> 1U;
for (auto i = 0U; i < mid; ++i) if (box[i] > 0) ++pos;
cout << "\npositive: " << pos << '\n';
forward_list<int> flst{ 1, 3, 7, 25, 4, 9, 7, 13, 5, 4 };
cout << "\nforward list: ";
for (auto x : flst) cout << setw(4U) << x;
puts("");
auto target = find(flst.begin(), flst.end(), 7);
auto before = flst.begin();
auto iter = flst.begin();
while (iter != flst.end()) {
if (++iter == target) break;
before = iter;
}
flst.insert_after(before, 12);
cout << "\nnew forward list: ";
for (auto x : flst) cout << setw(4U) << x;
puts("");
srand(unsigned(time(nullptr)));
queue<int> que;
for (auto i = 0; i < 12; ++i) que.push(RAND(5, 16));
auto count = 0U;
cout << "\nqueue: ";
for (auto i = 0; i < que.size(); ++i) {
if (que.front() < 10) ++count;
auto value = que.front();
cout << setw(4U) << value;
que.pop();
que.push(value);
}
puts("");
cout << "\nless 10: " << count << '\n';
system("pause > nul");
}
Руслан Иманбеков
Руслан Иманбеков
79 939
Лучший ответ
Вася Гураль это какая из задач ?