Воскресенье, 19.05.2024, 16:42
Приветствую Вас Гость


Меню сайта
Категории раздела
Главная » Статьи » Подготовка к ЕГЭ и олимпиадам » Решения олимпиадных задач

Задача "Как стать призером"

Как стать призером

К тренеру на занятия по подготовке к олимпиаде ходит N школьников. Для каждого из школьников заданы два параметра: начальный условный опыт Ai и условный интеллект Bi.

Каждое занятие устроено так: тренер подходит к какому-нибудь школьнику и обсуждает с ним возникшие вопросы и проблемы. В результате такого обсуждения условный опыт этого школьника возрастает на Bi (то есть чем выше условный интеллект школьника, тем больше этот школьник может взять из общения с тренером).

За все время подготовки к олимпиаде тренер может подойти ко всем школьникам суммарно не более C раз (он может подходить к разным школьникам, может несколько раз подходить к одному и тому же школьнику). Для того, чтобы школьник стал призером олимпиады, к началу олимпиады его условный опыт должен быть не меньше, чем K.

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

Сначала вводятся натуральные числа N, C, K, задающие количество школьников, количество подходов, которые может сделать учитель, и условный опыт, необходимый, чтобы стать призером олимпиады, соответственно (1 ≤ N ≤ 105, 1 ≤ C ≤ 109, 1 ≤ K ≤ 109). Далее идет N пар целых неотрицательных чисел Ai, Bi, задающих начальный условный опыт и условный интеллект каждого школьника. Каждое из чисел Ai и Bi не превышает 109.

Выведите одно число – наибольшее количество призеров олимпиады, которое успеет подготовить тренер.

Пример входных данных:

3 2 6

1 1

1 3

4 1

program z1;

var n,c,k,i,j,s:longint;

a:array [1..100] of longint;; b:array [1..100] of longint;f,f1:text;

begin

assign(f,'i.txt'); reset(f);

assign(f1,'o.txt');rewrite(f1);

read(f,n,c,k);

for i:=1 to n do read (f,a[i],b[i]);

{наращиваем интеллект каждого из n спортсменов c раз}

for i:=1 to n do

for j:=1 to c do a[i]:=a[i]+b[i];

{подсчитываем сколько из спортсменов имеет интеллект больше k}

for i:=1 to n do if a[i]>k then s:=s+1;

writeln(f1,s);

close(f); close(f1);

end.

Категория: Решения олимпиадных задач | Добавил: Admin (13.11.2014) | Автор: Грынина Татьяна
Просмотров: 376 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Поиск
Друзья сайта
Статистика
Рейтинг@Mail.ru