http://codeforces.com/problemset/problem/427/B
题意:n个囚犯站成一排,每个囚犯都有一个危害值代表其危害程度,现要连续运输c个囚犯到其他监狱,要求这c个囚犯的危害值均
小于t,求一共有多少种选法。
分析:遍历一遍即可,对于每个危害值均小于t的连续区间判断有几种选法即可,注意判断特殊情况。
#include<cstdio>
#include<string>
#include<cstdlib>
#include<cmath>
#include<iostream>
#include<cstring>
#include<set>
#include<queue>
#include<string>
#include <algorithm>
#include<vector>
using namespace std;
const int maxn = 1e5+100;
typedef long long ll;
int main()
{
ll n, t, c,tmp;
while(scanf("%I64d%I64d%I64d",&n,&t,&c) == 3)
{
ll sum1 = 0, sum = 0;
int flag = 0;
for(int i = 0; i < n; i++)
{
scanf("%I64d",&tmp);
if(tmp <= t)
{
sum1++;
}
else
{
if(sum1 >= c)
sum += sum1 - c + 1;
sum1 = 0;
flag = 1;
}
}
//cout << sum << endl;
//cout << sum1 << endl;
if(!flag && sum1 >= c)
sum += sum1 - c + 1;
else if(flag && sum1 >= c)
sum += sum1 - c + 1;
printf("%I64d\n",sum);
}
}