Решение задачи "Командировка" с Codeforces

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


Какая радость! Родители Пети уехали в командировку на целый год, предоставив шаловливого мальчугана самому себе. Петя обрадовался неимоверно. Он прыгал на кровати и бросался подушками целыми днями напролет, пока...

Сегодня Петя полез в буфет и обнаружил там страшную записку. Родители поручили сыну поливать их любимый цветок весь год, каждый день, утром, в обед и вечером. «Стоп!» — подумал Петя. Он точно знал, что если выполнять поручение родителей в течение i-го (1 ≤ i ≤ 12) месяца года, то цветок вырастет на ai сантиметров, а если не поливать цветок в i-ый месяц, то цветок за этот месяц не вырастет. Также Петя знает, что родители ни за что на свете не поверят, что он поливал цветок, если цветок вырастет строго меньше, чем на k сантиметров.

Помогите Пете выбрать минимальное количество месяцев, в которые он будет поливать цветок, так чтобы цветок вырос не менее чем на k сантиметров.

Код

#include<bits/stdc++.h>
using namespace std;
int main(){
	int k;
	cin>>k;
	int arr[12];
	for(int i=0;i<12;i++)cin>>arr[i];
	sort(arr,arr+12);
	int sum=0,count=0;
	for(int i=11;i>=0;i--){
		if(sum<k){
			sum+=arr[i];
			count++;
		}
		else break;
	}
	if(sum<k)
               cout<<"-1"<<endl;
	else 
               cout<<count<<endl;
}

         

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


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

Комментарии

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