Самостоятельная работа №2. Вариант №4 студент 1 курса факультета ээт гр. 525-22 Муборходжаев Зуфар


Download 1.82 Mb.
Sana08.04.2023
Hajmi1.82 Mb.
#1341062
TuriСамостоятельная работа
Bog'liq
lab3 best


МИНИСТЕРСТВО ПО РАЗВИТИЮ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОММУНИКАЦИЙ РЕСПУБЛИКИ УЗБЕКИСТАН


ТАШКЕНТСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ имени МУХАММАДА АЛЬ-ХОРЕЗМИ


САМОСТОЯТЕЛЬНАЯ РАБОТА №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 container;
int N = 4;
int a = 2*N;
int b = a+10;

srand(time(NULL));

for (int i = 0; i < 10 + N; i++) {
int num = (rand() % (b - a)) + a;
container.push_back(num);
}

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;
}



                  1. ЗАДАНИЯ №2

  1. Заполнить контейнер случайными числами в количестве 10 +N из интервала (a,b], где a=2*N, b=a+10, N- Удалите самый маленький элемент стека.

#include


#include
#include

using namespace std;

int main() {
stack myStack;
int N = 5; // Пример значения N
int a = 2*N;
int b = a + 10;

srand(time(NULL)); // Инициализация генератора случайных чисел

// Заполнение контейнера случайными числами
for (int i = 0; i < 10+N; i++) {
int num = rand() % (b - a) + a; // Генерация числа в интервале (a,b]
myStack.push(num);
}

// Удаление самого маленького элемента стека


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).


Выходные данные
Вывести наименьшую стоимость сложения всех чисел.
Тесты

Ввод

Вывод

4
10 12 13 11

92

5
100 11 8 30 12

272

4
2 2 2 2

16

6
1 2 3 4 5 6

51
#include

                1. #include

                2. using namespace std;


                3. int main() {

                4. int n;

                5. cin >> n;

                6. priority_queue, greater> pq;

                7. // создаем min-кучу, чтобы всегда доставать самые маленькие элементы

                8. for (int i = 0; i < n; i++) {

                9. int x;

                10. cin >> x;

                11. pq.push(x);

                12. }

                13. int ans = 0;

                14. while (pq.size() > 1) {

                15. int a = pq.top();

                16. pq.pop();

                17. int b = pq.top();

                18. pq.pop();

                19. int c = a + b;

                20. ans += c;

                21. pq.push(c);

                22. }

                23. cout << ans << endl;

                24. return 0;

                25. }






Download 1.82 Mb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling