Zigmynda11
10.04.2023 13:39

Системный администратор раз в неделю создаёт архив пользовательских файлов. Однако объём диска, куда он помещает архив, может быть меньше, чем суммарный объём архивируемых файлов. Известно, какой объём занимает файл каждого пользователя. Администратор сохраняет файлы по следующему правилу: выбирается файл максимального размера, который может быть записан на диск, затем выбирается файл минимального размера, который может быть записан на диск. Данный сценарий повторяется до тех пор, пока на диск нельзя будет записать ни одного из оставшихся файлов. Входные данные представлены в файле 26-j9.txt следующим образом. В первой строке входного файла находятся два числа: S – размер свободного места на диске (натуральное число, не превышающее 10 000) и N – количество пользователей (натуральное число, не превышающее 1000). В следующих N строках находятся значения объёмов файлов каждого пользователя (все числа натуральные, не превышающие 100), каждое в отдельной строке.

Запишите в ответе через пробел два числа: сначала наибольшее число пользователей, чьи файлы могут быть помещены в архив, затем размер последнего сохраненного файла.

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

100 5

80

30

10

5

7

При таких исходных данных можно сохранить файлы трех пользователей. Объёмы этих трёх файлов 80, 5 и 10. Последний выбранный файл имеет размер 10 , поэтому ответ для приведённого примера: 3 10.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
sashafedorishyn
02.06.2022 18:11

//g++ -Wall -o 1 1.cpp

//./1

#include <iostream>

#include <algorithm>

#include <vector>

using namespace std;

int main() {

   int n;

   cin>>n;

   if (n == 0){

       cout<<0;

       return 0;

   }

   else{

       int a1 = 0 , a2 = 1;

       int c = 1;

       while(a2<=n){

           if (a2==n){

               cout<<c;

               return 0;

           }

           a1 = a2;

           a2 = a1+a2;

           c++;

       }

       cout<<-1;

       return 0;

   }

}

Объяснение:

0,0(0 оценок)
Ответ:
Shilork
15.11.2022 16:38

Смотрим на диаграмму, видим, что у нас тут 4 части: Одна большая (половина всей окружности), вторая (1/4 от всей окружности) и еще две половинки (1/8 от всей окружности каждая)

Давай теперь посчитаем наши значения в ячейках A2:D2

A2 = (6+6)/3 = 12/3 = 4

B2 = 4 - 2 = 2

C2 = 2 / 2 = 1

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

Сразу ясно, 4 - большая часть, а ее половина это 2 и еще одну ячейка, которая равна 1, получается, что у нас не хватает только части, которая равна 1/8 окружности, которая равна 1, просто ищем формулу, которая нам даст единицу.

=C1 / 2 = 3 - не подходит

=C2/B2*4 = 1/2 * 4 = 2 - не подходит

=D1 * 2 = 4 * 2 = 8 - не подходит

=C2 = 1 - подходит

Давайте проверим тогда, если половинка это 4, то вся окружность это 8

4 + 2 + 1 + 1 = 8, а это значит, что мы всё верно решили.

ответ: =C2

Остались вопросы - добро в комментарии.


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