题解
【入门】不太甜的糖果
1 条题解
-
0
#include <bits/stdc++.h> using namespace std; long long a[230005],b[230005]; int n,m; bool f(int mid){ for(int i=mid;i<=n;i++){//循环后半段 if(b[i]-b[i-mid]>=m){//按预设长度判断 return true; } } return false; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++){ cin>>a[i]; b[i]=b[i-1]+a[i];//前缀和 } int l=1,r=n; while(l<=r){ int mid=l+(r-l)/2;//预设长度 if(f(mid)==true){//当前长度能符合要求 r=mid-1; }else{ l=mid+1; } } cout<<l; }
- 1