Решение задачи "Скидки" с Codeforces

Без пояснения   Просмотров: 9


Вы зашли в ближайший магазин, чтобы купить несколько плиток шоколада. В магазине продаются n плиток, i-я стоит ai монет (и вы хотите купить их все).

У вас есть m разных купонов, позволяющих покупать шоколадки на особых условиях. i-й купон позволяет купить qi шоколадок, при этом заплатив только за qi−1 наиболее дорогих из них (то есть самая дешевая из qi шоколадок вам достанется бесплатно).

Вы можете использовать только один купон; если вы используете купон i, вы должны выбрать qi шоколадок, которые вы купите по купону, а все остальные n−qi плиток вы купите без каких-либо скидок.

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

Код

#include <bits/stdc++.h>
using namespace std;

int main()
{
	long long int n,q,x,ans=0,i,j;
	cin>>n;
	int a[n];
	for(i=0;i<n;i++)
	{
		cin>>a[i];
		ans+=a[i];
	}
	sort(a,a+n);
	cin>>q;
	for(i=0;i<q;i++)
	{
		cin>>x;
		cout<<ans-a[n-x]<<" ";
	}
	return 0;
}

         

 Администратор Photo Автор: Администратор


Отправить решение задачи
Чтобы отправить решение вам нужно войти в систему или зарегистрироваться

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться