NanoApe Loves Sequence Ⅱ
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others)
Total Submission(s): 500 Accepted Submission(s): 242
In math class, NanoApe picked up sequences once again. He wrote down a sequence with
n
numbers and a number
m
on the paper.
Now he wants to know the number of continous subsequences of the sequence in such a manner that the
k
-th largest number in the subsequence is no less than
m
.
Note : The length of the subsequence must be no less than
k
.
T
, denoting the number of test cases.
In each test case, the first line of the input contains three integers
n
,
m
,
k
.
The second line of the input contains
n
integers
A
1
,
A
2
,
.
.
.
,
A
n
, denoting the elements of the sequence.
1
≤
T
≤
10
,
2
≤
n
≤
200000
,
1
≤
k
≤
n
/
2
,
1
≤
m
,
A
i
≤
10
9
#include <cstdio> #include <cstring> #include <algorithm> #include <map> #include <set> using namespace std; #define ll long long int s[200010]; int main() { int t; scanf("%d", &t); while(t--) { ll n,k,t; scanf("%I64d %I64d %I64d", &n, &t, &k); s[0] = 0; for(int i = 1; i <= n; i++) { s[i] = s[i-1]; int tmp; scanf("%d", &tmp); if(tmp >= t) s[i]++; } ll beg = 0, end = k, ans = 0; while(end <= n) { while(s[end] - s[beg] >= k)beg++; ans += beg; end++; } printf("%I64d\n", ans); } return 0; }
转载于:https://www.cnblogs.com/lonewanderer/p/5745707.html