Решение задачи Перевод заключенных с Codeforces

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


В данный момент в тюрьме вашего города содержится n заключенных. Так как в тюрьме осталось мало свободных мест, мэр города решил перевести c заключенных в тюрьму другого города.

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

Мэр попросил вас выбрать c преступников, которых надо перевести в другую тюрьму. Он поставил два условия:

Выбранные c преступников должны образовывать некоторый отрезок шеренги. Другими словами, выбранные преступники должны идти последовательно, без пропусков в шеренге.
Серьезность преступления каждого из выбранных преступников не должна быть больше t. В противном случае, преступник считается особо опасным, и мэр боится, что он сбежит во время перевода.
Сколькими способами можно выбрать c преступников, удовлетворив оба условия мэра?

Код

#include <bits/stdc++.h>

using namespace std;

int n, t, c, ans, a;

int main() {
	cin >> n >> t >> c;
	int tmp = 0;
	for (int i = 0; i < n; i++) {
		cin >> a;
		if (a <= t)
			tmp++;
		else
			tmp = 0;
		if (tmp >= c)
			ans++;
	}
	cout << ans << endl;
	return 0;
}

         

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



Комментарии

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