Самостоятельная работа №2. Вариант №4 студент 1 курса факультета ээт гр. 525-22 Муборходжаев Зуфар
Download 1.82 Mb.
|
lab3 best
- Bu sahifa navigatsiya:
- САМОСТОЯТЕЛЬНАЯ РАБОТА №2. Вариант №4 Выполнил: студент 1 курса факультета ЭЭТ гр. 525-22 Муборходжаев Зуфар
- Входные данные Начинаются целым числом n(2⩽n⩽10 5 ), за которым следуют n целых неотрицательных чисел (все числа меньше 10 5 ). Выходные данные
МИНИСТЕРСТВО ПО РАЗВИТИЮ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОММУНИКАЦИЙ РЕСПУБЛИКИ УЗБЕКИСТАН ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ имени МУХАММАДА АЛЬ-ХОРЕЗМИ САМОСТОЯТЕЛЬНАЯ РАБОТА №2. Вариант №4 Выполнил: студент 1 курса факультета ЭЭТ гр. 525-22 Муборходжаев Зуфар Ташкент-2023 ЗАДАНИЯ №1. Заполнить контейнер случайными числами в количестве 10 +N из интервала (a,b], где a=2*N, b=a+10, N- номер варианта -4.Поместите знак «+» в середине очереди. #include #include #include #include using namespace std; int main() { vector int N = 4; int a = 2*N; int b = a+10; srand(time(NULL)); for (int i = 0; i < 10 + N; i++) {
int middle = container.size() / 2; container.insert(container.begin() + middle, '+'); for (int i = 0; i < container.size(); i++) { cout << container[i] << " "; } cout << endl; return 0;
ЗАДАНИЯ №2 Заполнить контейнер случайными числами в количестве 10 +N из интервала (a,b], где a=2*N, b=a+10, N- Удалите самый маленький элемент стека. #include #include #include using namespace std; int main() {
srand(time(NULL)); // Инициализация генератора случайных чисел // Заполнение контейнера случайными числами
// Удаление самого маленького элемента стека int min = myStack.top(); while (!myStack.empty()) { int num = myStack.top(); myStack.pop(); if (num < min) { min = num; } } cout << "Минимальное число: " << min << endl; return 0; } Задача №3. Введем понятие стоимости для операции сложения. Стоимость сложения двух чисел положим равным их сумме. Например, сложить числа 1 и 10 стоит 11. Стоимость сложения 1, 2 равна 3. Складывать числа можно разными способами. Рассмотрим на примере 1+2+3: 1+2=3(стоимость=3), 3+3=6(стоимость=6), Всего=9 1+3=4(стоимость=4), 2+4=6(стоимость=6), Всего=10 2+3=5(стоимость=5), 1+5=6(стоимость=6), Всего=11 Вам необходимо сложить все числа так, чтобы суммарная стоимость их сложения была наименьшая. Входные данные Начинаются целым числом n(2⩽n⩽105), за которым следуют n целых неотрицательных чисел (все числа меньше 105). Выходные данные Вывести наименьшую стоимость сложения всех чисел. Тесты
#include using namespace std; int main() { int n; cin >> n; priority_queue // создаем min-кучу, чтобы всегда доставать самые маленькие элементы for (int i = 0; i < n; i++) { int x; cin >> x; pq.push(x); } int ans = 0; while (pq.size() > 1) { int a = pq.top(); pq.pop(); int b = pq.top(); pq.pop(); int c = a + b; ans += c; pq.push(c); } cout << ans << endl; return 0; } Download 1.82 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling