1 条题解
-
0
!?青青?!,!?水水?!
#include<bits/stdc++.h> using namespace std; #define int long long const int N=2e5+10; int a[N],b[N],s[N];char st[N]; signed main() { int n,m=0,k;cin>>st+1>>k;n=strlen(st+1); for(int i=1;i<=n;i++)if(st[i]=='Y')b[++m]=i; for(int i=1;i<=m;i++)s[i]=s[i-1]+b[i]; int l=0,r=m,res=0; while(l<=r) { int mid=(l+r)>>1,bk=0; for(int i=mid;i<=m;i++) { int sum=s[i]-s[i-mid/2]-(s[i-mid+mid/2]-s[i-mid])-(mid/2)*(mid/2+1)/2-((mid-1)/2)*((mid-1)/2+1)/2; if(sum<=k) { bk=1; break; } } if(bk)l=mid+1,res=mid; else r=mid-1; } cout<<res<<'\n'; return 0; }
- 1
信息
- ID
- 12308
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 6
- 已通过
- 2
- 上传者