题解 | #罪犯转移#
罪犯转移
http://www.nowcoder.com/practice/b7b1ad820f0a493aa128ed6c9e0af448
#include<bits/stdc++.h> using namespace std; int main() { int n; while(cin>>n) { int t,c; cin>>t>>c; vectorvalue; int sum_value =0;//罪行值 int index=0,res=0;//去掉前缀 for(int i=0;i<n;i++) { int x; cin>>x; value.push_back(x); } for(int i=0;i<n;++i) { sum_value+=value[i]; while(sum_value>t) { sum_value-=value[index++]; } if(i-index+1==c)//满足方式 { res+=1; sum_value-=value[index++];//继续去除前缀,查询是否还有满足条件的方案 } } cout<<res<<endl;; }
}