C市现在要转移一批罪犯到D市,C市有n名罪犯,按照入狱时间有顺序,另外每个罪犯有一个罪行值,值越大罪越重。现在为了方便管理,市长决定转移入狱时间连续的c名犯人,同时要求转移犯人的罪行值之和不超过t,问有多少种选择的方式?
// ConsoleApplication12.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
// ConsoleApplication12.cpp : 定义控制台应用程序的入口点。
//
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n, t, c;
while (cin >> n)
{
cin >> t;
cin >> c;
vector<int> crimeVal;
int num=0;
//输入罪犯的罪行值
for (int i = 0;i < n;i++)
{
int value;
cin >> value;
crimeVal.push_back(value);
}
for (int i = 0;i < crimeVal.size() - c+1;i++)
{
int sum = 0;
// cout << "i:" << i << endl;
for (int j = i;j < c+i;j++)
{
sum = sum + crimeVal[j];
}
if (sum <= t)
{
num++;
}
/*else
{
break;
}*/
}
// cout << "方案数目:";
cout << num << endl;
}
return 0;
};