标签:ref from nbsp class scanf arch 数据 sep put
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 16520 | Accepted: 7008 |
Description
Input
Output
Sample Input
2
10 15
5 1 3 5 10 7 4 9 2 8
5 11
1 2 3 4 5
Sample Output
2
3
Source
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int t,n,s,x; int sum[100005]; int main(){ scanf("%d",&t); while(t--){ scanf("%d%d",&n,&s); for(int i=1;i<=n;i++){ scanf("%d",&x); sum[i]=sum[i-1]+x; } if(sum[n]<s){ printf("0\n"); continue; } int res=n; for(int i=0;sum[i]+s<=sum[n];i++){ int t=lower_bound(sum+i+1,sum+n+1,sum[i]+s)-sum; res=min(res,t-i); } printf("%d\n",res); } return 0; }
#include<iostream> #include<cstdio> using namespace std; int res,t,n,s,l,r,sum; int a[100006]; int main(){ scanf("%d",&t); while(t--){ scanf("%d%d",&n,&s); for(int i=1;i<=n;i++)scanf("%d",&a[i]); l=r=1;sum=0;res=n+1; for(;;){ while(r<=n&&sum<s){ sum+=a[r++]; } if(sum<s)break;//必须先判断才能更新解 res=min(res,r-l); sum-=a[l++]; } if(res>n)printf("0\n"); else printf("%d\n",res); } return 0; }
标签:ref from nbsp class scanf arch 数据 sep put
原文地址:http://www.cnblogs.com/zzyh/p/7488929.html