CodeFoeces-982A

2018-05-24  本文已影响0人  ss5smi

题目

原题链接:Row

题意

给出一串由0和1组成的数字,1表示这排座位中该位置有人,0相反。问该排是否满足任意两人件间有空位,且不能插入任何一个满足上一条件的座位。
写的有些乱。开头和结束的判断条件不同于中间,两头若是有≥2的空位则还能插入,中间>2则能插入。

代码

#include<bits/stdc++.h>
using namespace std;
int main() {
    int n;
    string s;
    cin>>n>>s;
    int cnt=0;
    for(int i=0;i<n;i++){
        cnt+=s[i]=='0';
    }
    if(cnt==n){
        printf("No\n");
        return 0;
    }
    int tmp=0,flag=0;
    for(int i=0;i<n;i++){
            if(s[i]=='1'){
                if(flag){
                    if(tmp>2 || tmp==0){
                        printf("No\n");
                        return 0;
                    }
                }else{
                    flag=1;
                    if(tmp>=2){
                        printf("No\n");
                        return 0;
                    }
                }
                tmp=0;
            }else tmp++;
    }
    if(tmp>=2) printf("No\n");
    else printf("Yes\n");
    return 0;
}
上一篇 下一篇

猜你喜欢

热点阅读