1400*C. Team(模拟&构造)

Problem - 401C - Codeforces

解析:

因为0不能相邻,所以0之间最少 n-1 个位置,最多 n+1 个位置,如果 m<n-1显然不符题意。

并且1最多连续两个,所以 m>2*n+2 同样不符题意。

其余情况构造即可

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int n,m;
signed main(){
	scanf("%d%d",&n,&m);
	if(m<n-1||m>2*n+2) puts("-1");
	else{
		if(m==n){
			for(int i=1;i<=n;i++) printf("01");
		}
		else if(m==n-1){
			for(int i=1;i<=n-1;i++) printf("01");
			printf("0");
		}
		else{
			int a=m-n-1,b=n+1-a;
			for(int i=1;i<=n;i++){
				if(a>0) printf("11"),a--;
				else printf("1"),b--;
				printf("0");
			}
			if(a>0) printf("11"),a--;
			else printf("1"),b--;
		}
	}
	return 0;
}
相关推荐
我不是代码教父32 分钟前
[原创](Modern C++)现代C++的关键性概念: 流格式化
c++·字符串格式化·流格式化·cout格式化
利刃大大1 小时前
【回溯+剪枝】找出所有子集的异或总和再求和 && 全排列Ⅱ
c++·算法·深度优先·剪枝
charlie1145141911 小时前
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(协议层封装)
c语言·驱动开发·单片机·学习·教程·oled
子燕若水1 小时前
mac 手工安装OpenSSL 3.4.0
c++
来恩10031 小时前
C# 类与对象详解
开发语言·c#
*TQK*1 小时前
ZZNUOJ(C/C++)基础练习1041——1050(详解版)
c语言·c++·编程知识点
komo莫莫da2 小时前
寒假刷题Day19
java·开发语言
Rachela_z2 小时前
代码随想录算法训练营第十四天| 二叉树2
数据结构·算法
细嗅蔷薇@2 小时前
迪杰斯特拉(Dijkstra)算法
数据结构·算法
追求源于热爱!2 小时前
记5(一元逻辑回归+线性分类器+多元逻辑回归
算法·机器学习·逻辑回归