POJ 3061 Subsequence G++

来源:互联网 发布:centos中文输入法切换 编辑:程序博客网 时间:2024/06/05 09:04

#include <cstdio>#include <algorithm>//挑战程序设计竞赛 例题 //抄书 using namespace std;int a[100010];int sum[100011];int main(){int N;scanf("%d",&N);for(int i=0;i<N;i++){int NUM;scanf("%d",&NUM);int S;scanf("%d",&S);for(int j=0;j<NUM;j++){scanf("%d",&a[j]);sum[j+1]=sum[j]+a[j];}if(sum[NUM]<S){printf("0\n");//break;continue;//谢谢博友文章 }int res=NUM;for(int s=0;sum[s]+S<=sum[NUM];s++){int t=lower_bound(sum+s,sum+NUM,sum[s]+S)-sum;res=min(res,t-s); }printf("%d\n",res);}return 0;} 

由 N 个数字组成的序列,求最短的连续子序列使和大于等于 S 。

原创粉丝点击