hihocoder01串

#1144 : 01串

時間限制:7000ms
單點時限:1000ms
內存限制:256MB

描述

給定兩個整數n和m,求是否存在恰好包含n個0和m個1的01串S,使得S中不存在子串"001"和"11"。

如果存在符合條件的01串則輸出字典序最小的S,否則輸出NO。

輸入

一行兩個整數,表示n和m。(0<=n,m<=100000,0<n+m)

輸出

一行一個字符串,爲字典序最小的S或者NO。

樣例輸入
2 3
樣例輸出
10101

#include <iostream>
#include <cstdio>
using namespace std;

int main(){
	int n,m;
	while(scanf("%d%d",&n,&m)!=EOF){
		if(n==0&&m==0){
			cout<<"NO"<<endl;
		}
		if(n>=m-1){//
			if(n==m-1){//如果等於則表現形式必然爲101這種形式
				for(int i=0;i<n;i++){
					cout<<"10";
				}
				cout<<"1"<<endl;
			}else{//否則必然爲010101000XXX這種形式
				for(int i=0;i<m;i++){
					cout<<"01";
				}
				for(int i=m;i<n;i++){
					cout<<"0";
				}
				cout<<endl;
			}
		}
		else {//如果小於必然出現11
			cout<<"NO"<<endl;
		}
	}
	return 0;
}

發佈了41 篇原創文章 · 獲贊 6 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章