В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Appledog
Appledog
26.09.2021 16:21 •  Информатика

Задача 2. Расписание занятий

Входной файл стандартный ввод / input.txt

Выходной файл стандартный вывод / output.txt

Ограничение времени (сек/тест) 1

Ограничение памяти (Мб) 64

Максимальный 25+10

Условие задачи

В компьютерных классах занимаются N групп учеников. В i-й группе оказалось Xi

человек. В школе имеется M компьютерных классов, в j-ом классе имеется Yj компьютеров.

Для занятий необходимо, чтобы у каждого ученика был компьютер и еще один компьютер

был у учителя. Переносить компьютеры из одного класса в другой запрещается.

Необходимо создать программу для поиска максимального количества групп, которые

удастся одновременно распределить по компьютерным классам, чтобы всем ученикам в

каждой группе хватило компьютеров, и при этом остался еще хотя бы один компьютер для

учителя.

Входные данные

В первой строке входного файла записаны числа N и M (1 ≤ N ≤ M ≤ 1000). Во второй

строке записано N чисел – X1 … XN (1 ≤ Xi ≤ 1000 для всех 1 ≤ i ≤ N). В третьей строке

записано M чисел – Y1 … YM (1 ≤ Yj ≤ 1000 для всех 1 ≤ j ≤ M). Разделитель чисел в строках –

пробел.

Выходные данные

В первой строке выходного файла должно быть записано число P – количество групп,

которые удалось одновременно распределить по компьютерным классам. Во второй строке

необходимо вывести полученное распределение групп – N чисел, i-е число должно

соответствовать номеру класса, в котором должна заниматься i-я группа. (Нумерация как

групп, так и компьютерных классов, начинается с 1). Если при распределении i-ая группа

осталась без компьютерного класса, i-е число должно быть равно 0. Разделитель чисел в

строках – пробел.

Если допустимых распределений несколько, необходимо вывести любое из них.

Пример входного файла

(stdin / input.txt)

Пример выходного файла

(stdout / output.txt)

3 4

5 3 4

3 5 3 6

2

0 2 4
НА ПИТОНЕ

Показать ответ
Ответ:
2007arttt
2007arttt
25.07.2020 10:30

Плата с электронной схемой управления:контроллер

протирать монитор нужно: специально чистящей жидкостью

BIOS находится в: в постояно-запоминающем устройстве (ПЗУ)

Каталог - это:специальное место на диске, в котором хранятся имена файлов, сведения о размере файлов, времени их последнего обновления, атрибуты файлов

Отличие команды «Сохранить как» от «Сохранить»:позволяет сохранить файл под другим именем и в другом месте

Диапазон – это: совокупность клеток, образующих в таблице область прямоугольной формы

Активная ячейка – это ячейка:для выполнения ввода данных

База данных – это:совокупность взаимосвязанных данных с общими принципами описания, хранения и обработки данных

Реляционная база данных - это:БД, в которой информация организована в виде прямоугольных таблиц

С графического редактора Paint можно:создавать и редактировать простые графические изображения

Объяснение:

0,0(0 оценок)
Ответ:
Игнат20082412
Игнат20082412
18.02.2020 00:43

Объяснение:

#include <iostream>

#include <ctime>

#include <string>

using namespace std;

int main()

{

   srand(time(NULL));

   int N, M; // Розміри матриці

   cout << "Enter n: ";

   cin >> N;

   cout << "Enter m: ";

   cin >> M;

   if (N != M) // Перевірка на не квадратну матрицю

   {

       cout << "n should be equal to m" << endl;

       return 0;

   }

   int a, b; // Межі випадкових чисел масиву

   cout << "Enter a: ";

   cin >> a;

   cout << "Enter b: ";

   cin >> b;

   int Width = max(to_string(a).length(), to_string(b).length()) + 1; // Ширина для cout

   int** arr = new int* [N]; // Виділення пам'яті для динамічного масиву

   int** result = new int* [N]; // Виділення пам'яті для динамічного масиву (результат)

   for (int i = 0; i < N; i++)

   {

       arr[i] = new int[M];

       result[i] = new int[M];

   }

   cout << "n = " << N << endl

       << "m = " << M << endl

       << "Interval - [" << a << ";" << b << "]" << endl << endl

       << "Our matrix: " << endl;

   for (int i = 0; i < N; i++)

   {

       for (int j = 0; j < M; j++)

       {

           arr[i][j] = a + rand() % (b - a + 1);

           cout.width(Width); // Щоб було красиво

           cout << arr[i][j];

       }

       cout << endl;

   }

   for (int i = 0; i < N; i++)

   {

       for (int j = 0; j < M; j++)

       {

           if (j == 0 && i != N - 1)

           {

               result[N - 1][i + 1] = arr[i][j];

           }

           else if (i == N - 1 && j != 0)

           {

               result[j - 1][0] = arr[i][j];

           }

           else

           {

               result[i][j] = arr[i][j];

           }

       }

   }

   cout << endl << "Result matrix:" << endl;

   for (int i = 0; i < N; i++)

   {

       for (int j = 0; j < M; j++)

       {

           cout.width(Width); // Щоб було красиво

           cout << result[i][j];

       }

       cout << endl;

   }

   for (int i = 0; i < N; i++) // Звільнення пам'яті відведеної під динамічні масиви

   {

       delete[] result[i];

       delete[] arr[i];

   }

   delete[] result;

   delete[] arr;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота