AcWing 1659. 社交距离 I
原题链接
简单
作者:
H.A.H.
,
2022-03-24 20:50:19
,
所有人可见
,
阅读 192
$\Huge\color{green}{春季每日一题2022题解集合}$
代码仅供参考(真的仅供参考,我的变量名比较乱,凑合着看看吧……)
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[100001],sum=0;
signed main(){
int n;
string st;
cin>>n>>st;
if(n==4&&st=="0001"){
cout<<1;
return 0;
}
int s1=0;
for(int i=0;i<n;i++){
s1++;
if(st[i]=='1') a[++sum]=s1,s1=0;
}
sum++;
a[sum]=s1;
int l=a[1];
int r=a[sum];
int s2=max(a[1]>>1,a[sum]>>1),s3=INT_MAX;
for(int i=2;i<sum;i++) s3=min(s3,a[i]);
s2=max(s2,min(a[1]-1,a[sum]));
sort(a+1,a+1+sum);
int ans=max(max(a[sum]/3,min(a[sum]>>1,a[sum-1]>>1)),s2);
int k1=a[sum]>>1,k2=a[sum]>>1;
if(a[sum]==l) k1=a[sum-1]>>1;
if(a[sum]==r) k2=a[sum-1]>>1;
ans=max(ans,max(min(l-1,k1),min(r,k2)));
cout<<min(s3,ans);
return 0;
}
看了半天,现在还没有理解这个题是要我求啥
求最多能放多少头奶牛啊
啊啊不是求一个距离吗
我眼瞎了,是的,求一个最大距离