Решение задачи Нечестные продавцы с Codeforces

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


Игорь узнал о скидках в магазине и решил купить n товаров. Скидки в магазине продлятся неделю и Игорь знает про каждый товар, что сейчас он стоит a i, а после недели скидок будет стоить b i.

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

Игорь решил, что купит не менее k товаров сейчас, а с остальными подождет неделю, чтобы максимально сэкономить. Перед вами стоит задача определить минимальную сумму, которую Игорь может потратить, чтобы купить все n товаров.

Код

#include <bits/stdc++.h>
using namespace std;
int main() {
	int n,k;
	cin >> n >> k;
	int a[n],b[n];
	long long sum1 = 0;
	for(int i=0 ; i<n ; i++) {
		cin >> a[i];
		sum1+=1LL*a[i];
	}
	for(int i=0 ; i<n ; i++) {
		cin >> b[i];
	}
	int r = n-k;
	for(int i=0 ; i<n ; i++) {
		b[i]=b[i]-a[i];
	}
	sort(b,b+n);
	long long sum2 = 0;
	for(int i=0 ; i<r; i++) {
		if(b[i]>=0)break;
		sum2+=b[i];
	}
	cout << sum1 + sum2 << endl;
	return 0;
}

         

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



Комментарии

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