The prison of your city has n prisoners. As the prison can't accommodate all of them, the city mayor has decided to transfer c of the prisoners to a prison located in another city.
For this reason, he made the n prisoners to stand in a line, with a number written on their chests. The number is the severity of the crime he/she has committed. The greater the number, the more severe his/her crime was.
Then, the mayor told you to choose the c prisoners, who will be transferred to the other prison. He also imposed two conditions. They are,
Find the number of ways you can choose the c prisoners.
The first line of input will contain three space separated integers n (1 ≤ n ≤ 2·105), t (0 ≤ t ≤ 109) and c (1 ≤ c ≤ n). The next line will contain n space separated integers, the ith integer is the severity ith prisoner's crime. The value of crime severities will be non-negative and will not exceed 109.
Print a single integer — the number of ways you can choose the c prisoners.
4 3 3 2 3 1 1
2
1 1 1 2
0
11 4 2 2 2 0 7 3 2 2 4 9 1 4
6
解题说明:题目意思翻译过来就是判断一个连续区间内的数是否都超过一个阈值,做法是对数列进行遍历,符号条件就计数即可。
#include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include <algorithm> #include<cstring> using namespace std; int main() { int n, t, c; int tc = 0; int ans = 0; int temp; scanf("%d%d%d", &n, &t, &c); while (n--) { scanf("%d", &temp); if (temp > t) { tc = 0; } else { tc++; if (tc >= c) { ans++; } } } printf("%d\n", ans); return 0; }