Решение задачи Очередь с Codeforces

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


Маленькая девочка Сьюзи ходила с мамой в магазин, и ей стало интересно, как можно улучшить обслуживание очередей.

В очереди стоит n людей. Для каждого человека известно время ti, необходимое на его обслуживание. Человек будет недоволен, если время его ожидания будет больше, чем время его обслуживания. Временем ожидания человека считается суммарное время обслуживания всех людей, стоящих перед ним в очереди. Сьюзи подумала, что если поменять местами некоторых людей в очереди, то получится уменьшить количество недовольных.

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

Код

#include<bits/stdc++.h>
using namespace std;
int n, a[200000], c, s;
int main()
{
	cin >> n;
	for(int i = 0; i < n; i++)
		cin >> a[i];
	sort(a, a + n);
	for(int i = 0; i < n;i++){
		if(s <= a[i]){
			c++;
			s += a[i];
		}
	}
	cout << c;
	return 0;
}

         

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



Комментарии

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