М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
arinaplatonova1
arinaplatonova1
05.10.2020 04:13 •  Информатика

В обувном магазине продается обувь разного размера. Известно, что одну пару обуви можно надеть на другую, если она хотя бы на три размера больше. В магазин пришел покупатель. Требуется определить, какое наибольшее количество пар обуви сможет предложить ему продавец так, чтобы он смог надеть их все одновременно.
Входные данные
Сначала вводится размер ноги покупателя (обувь меньшего размера он надеть не сможет), затем количество пар обуви в магазине и размер каждой пары. Размер — натуральное число, не превосходящее 100, количество пар обуви в магазине не превосходит 1000.
Выходные данные
Выведите единственное число — максимальное количество пар обуви.
Вот мой код:
#include
#include
#include

using namespace std;

int main() {
int n, footSize;
cin >> footSize >> n;
vector a;
for (int i = 0; i < n; i++) {
int temp = 0;
cin >> temp;
if (temp >= footSize) {
a.push_back(temp);
}
}
sort(a.begin(), a.end());
int temp = 0, i = 0;
for (auto now : a) {
if (now >= temp + 3) {
i++;
temp = now;
}
}
cout << i;
return 0;
}
Что-то не так поправьте

👇
Ответ:
polinaandreeva10
polinaandreeva10
05.10.2020
Привет! Видимо, ты хочешь решить задачу о предложении покупателю наибольшего количества пар обуви, которые он сможет надеть одновременно. В коде, который ты предоставил, есть некоторые ошибки и недочеты, которые я помогу исправить.

Во-первых, у тебя не указаны заголовки для включения необходимых библиотек. Тебе потребуется включить для использования объектов cin и cout, а также и для работы с векторами и сортировки. Вставь следующие строки перед началом main():
```
#include
#include
#include
```

Во-вторых, у тебя нет объявления шаблона для вектора a. Исправь строку
```
vector a;
```
на
```
vector a;
```

После этих исправлений код будет выглядеть следующим образом:
```
#include
#include
#include

using namespace std;

int main() {
int n, footSize;
cin >> footSize >> n;
vector a;
for (int i = 0; i < n; i++) {
int temp = 0;
cin >> temp;
if (temp >= footSize) {
a.push_back(temp);
}
}
sort(a.begin(), a.end());
int temp = 0, i = 0;
for (auto now : a) {
if (now >= temp + 3) {
i++;
temp = now;
}
}
cout << i;
return 0;
}
```

Теперь, когда код исправлен, давай разберемся, как он работает.

1. В начале вводятся данные: размер ноги покупателя и количество пар обуви в магазине.

2. Затем создается пустой вектор a, в который будут добавляться размеры обуви, которые больше или равны размеру ноги покупателя.

3. В цикле происходит считывание размеров каждой пары обуви. Если размер обуви больше или равен размеру ноги покупателя, он добавляется в вектор a.

4. После считывания всех размеров обуви вектор a сортируется по возрастанию, чтобы размеры были в порядке возрастания.

5. Затем инициализируются две переменные: temp для хранения размера последней надетой пары обуви и i для подсчета количества пар обуви, которые покупатель может надеть одновременно. Обе переменные устанавливаются равными нулю.

6. В цикле происходит проверка каждой пары обуви в векторе a. Если размер текущей пары обуви больше или равен temp + 3 (т.е. на три размера больше, чем предыдущая надетая пара), увеличиваем i на единицу и присваиваем temp значение размера текущей пары обуви.

7. В конце выводится значение i, которое является максимальным количеством пар обуви, которые покупатель сможет надеть одновременно.

Надеюсь, эта подробная разборка помогла тебе понять код и исправить его! Если у тебя возникнут еще вопросы, не стесняйся задавать!
4,5(38 оценок)
Проверить ответ в нейросети
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ