Рамзи Сарнаех создал новую компанию пригородных услуг, которую назвал Нерешенные Идеи (НИ). Пока Рамзи в НИ еще не нанял работников, поэтому он первые несколько месяцев должен работать сам, пока он не сможет расширить свою компанию. Недавно он получил некоторые проекты от правительственных министерств и разбил все проекты на меньшие независимые подпроекты с разными стоимостями. Мы предполагаем, что все подпроекты могут быть выполнены за единицу времени. Рамзи, имея ограниченное время, но будучи оптимистом, хочет знать, сколько, в наилучшем случае, он может заработать, принимая более ценные подпроекты и отклоняя другие.
Первая строка содержит количество тестов. Каждый тест задается одной строкой и начинается с двух целых чисел: времени t, имеющегося в распоряжении Рамзи и количество подпроектов p соответственно (0 ≤ t, p ≤ 1000). За этими двумя числами следует p неотрицательных целых чисел (от 0 до 32767, включительно), которые являются значениями стоимости подпроектов. Все числа в одной строке разделены пробелом.
Для каждого теста вывести в одной строке максимальную заработанную сумму денег (сумму значений), которую можно достичь в пределах доступного времени Рамзи.
#include <iostream>
using namespace std;
int m, n, t, p, temp[1000];
long long Suma[1000];
void push(int m)
{
for (int i = 0; i < p; i++)
if (temp[i] < m)
{
for (int j = p - 1; j > i; j--) temp[j] = temp[j - 1];
temp[i] = m; break;
}
}
int main()
{
cin >> n;
for (int i = 0; i < n; Suma[i] = 0, i++);
for (int i = 0; i < n; i++)
{
cin >> t >> p;
for (int j = 0; j < t; j++) temp[j] = 0;
for (int j = 0; j < p; j++) { cin >> m; push(m); }
for (int j = 0; j < t; j++) Suma[i] += temp[j];
}
for (int i = 0; i < n; i++) cout << Suma[i] << endl;
}
Есть решение которого нет на сайте? Пиши admin@devexe.top