[编程题]电影院选座
#include <bits/stdc++.h>
using namespace std;
const int N = 1010;
int a[N];
int main(){
int index=0,res=0;
string s;
getline(cin,s);
for(int i=0;i<s.size();i++){
if(s[i]=='1') a[index++]=1;
else if(s[i]=='0') a[index++]=0;
}
if(a[0]==0){
int i=0;
for(;i<index;i++){
if(a[i]==1) break;
}
res=max(res,i);
}
if(a[index-1]==0){
int i=index-1;
for(;i>=0;i--){
if(a[i]==1) break;
}
res=max(res,index-1-i);
}
for(int i=1;i<index-1;i++){
if(a[i]==1) continue;
int j=i;
for(;j<index-1;j++) if(a[j]==1) break;
int mid = i+(j-i)/2;
int tmp = min(j-mid,mid-i+1);
res = max(res,tmp);
}
cout<<res;
}
|