【题目大意】
某市的监狱犯人关满了,需要从n个囚徒中选择c个转移至另外一个监狱,监狱长给出了选择的两个要求,让你计算有多少种方法然后输出方法数。
要求:
1.所选的囚徒必须都是连续的;
2.所选的囚徒中,每个囚徒的犯罪严重程度不超过t。
分段计算:
例如数据:
11 4 2 2 2 0 7 3 2 2 4 9 1 4
分成三段计算 第一段:3-2+1 第二段:4-2+1 第三段:2-2+1
#include<iostream>
using namespace std;
int main()
{
int n,t,c,k,ans1,ans2;
while (cin>>n>>t>>c)
{
ans1=ans2=0;
for (int i=0; i<n; i++)
{
cin>>k;
if(k>t) 分段计算
{
if(ans1>=c)
{
ans2+=ans1-c+1;
}
ans1=0;
}
else
{
ans1++;
}
}
if(ans1>=c)
{
ans2+=ans1-c+1;
}
cout<<ans2<<endl;
}
}