Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Задача на С++ СРОЧНО!!!!

Егор Федулаев Ученик (95), открыт 2 часа назад
У фирмы «Орион» на складе хранятся товары различных категорий. Существует список с данными о весе и категории товаров склада. Фирме необходимо перевезти максимальное количество (в штуках) товаров категории «С». При этом она может сделать одну перевозку общим весом в 30000 кг. Напишите программу, которая определит, какое максимальное количество товаров требуемой категории сможет перевезти фирма за один раз.

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

Вводится натуральное число n – количество товаров на складе. Далее вводятся n строк с категорией и весом (в килограммах). В каждой из таких строк идет сначала категория (заглавная латинская буква), потом пробел, потом вес товара (натуральное число).

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

Вывести одно число – максимальное количество товаров (в штуках) категории «С», которые может перевезти фирма за один раз (общий вес товаров не должен превышать 30000 кг.).

Так, например, если программе на вход будут поданы следующие данные:
7
C 1200
A 20000
B 15000
C 1500
C 25000
C 18000
C 1000,
то она должна вывести число 4.
2 ответа
Denis Sekurov Ученик (192) 2 часа назад
Нейросеть в помощь
Егор ФедулаевУченик (95) 2 часа назад
Я пытался, норм так и не получилось
GS HS Ученик (186) 2 часа назад
#include <iostream>
#include <vector>
#include <algorithm>

int main() {
int n;
std::cin >> n;
std::vector<int> weights;
for (int i = 0; i < n; ++i) {
char category;
int weight;
std::cin >> category >> weight;
if (category == 'C') {
weights.push_back(weight);
}
}
std::sort(weights.begin(), weights.end());
int total_weight = 0;
int count = 0;
for (int weight : weights) {
if (total_weight + weight <= 30000) {
total_weight += weight;
++count;
} else {
break;
}
}
std::cout << count << std::endl;
return 0;
}
Похожие вопросы