CF AIM Tech Round 3 (Div. 2) D - Recover the String

模拟

首先可以求出 0 和 1 的个数

之后按照01 10 的个数贪心安排

细节太多 错的都要哭了

 

#include<bits/stdc++.h>
using namespace std;

int main(){
	int a,b,c,d;
	while(~scanf("%d %d %d %d",&a,&b,&c,&d)) {
		int suc = 1;

		int t1,t2;
		t1 = sqrt(2*a); t2 = sqrt(2*d);
		t1 ++; t2 ++;
		if(t1*(t1-1) != 2*a || t2*(t2-1) != 2*d) suc = 0;


		if(d == 0) {
			if(!suc) printf("Impossible\n");
			else if(b == 0 && c == 0) {
				for(int i = 0; i < t1; ++i) printf("0"); printf("\n");
			}else if(b+c == t1) {
				if(t1 == 1) {
					if(b) printf("01\n");
					else printf("10\n");
					continue;
				}
				int cc = 0;
				if(cc == b) printf("1");
				for(int i = 0; i < t1; ++i) {
					printf("0");
					cc ++;
					if(cc == b) printf("1");
				} printf("\n");
			}
			else printf("Impossible\n");
			continue;
		}else if(a == 0) {
			if(!suc) printf("Impossible\n");
			else if(b == 0 && c == 0) {
				for(int i = 0; i < t2; ++i) printf("1"); printf("\n");
			}else if(b+c == t2) {
				int cc = 0;
				if(cc == c) printf("0");
				for(int i = 0; i < t2; ++i) {
					printf("1"); cc ++;
					if(cc == c) printf("0");
				} printf("\n");
			}
			else printf("Impossible\n");
			continue;
		}
		
		if(b+c != t1*t2) suc = 0;
		int num1 = 0, pos1 = 0;
		num1 = c/t1; pos1 = c%t1;
		int all = num1 + (pos1 > 0);
		if(all > t2) suc = 0;

		if(suc) {
			for(int i = 0; i < num1; ++i) printf("1");
			int cc = t1;
			for(int i = 0; i < t1; ++i) {
				cc --;
				printf("0");
				if(cc == pos1 && cc != 0) printf("1");  
			}
			for(int i = 0; i < t2-all; ++i) printf("1"); printf("\n");
		}
		else printf("Impossible\n");
	}
	return 0;	
}


 

转载于:https://www.cnblogs.com/Basasuya/p/8433757.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于vue健身小程序正是采用微信小程序和网络设计的新型系统,可以有效的把健身信息与网络相结合,为用户提供工作帮助和管理需求。本系统采用mysql数据库存储数据,兼容性更强,可跨越多种平台,采用的框架为ssm。主要设计的内容包括课程信息、教练信息、健身视频。教练可以上传健身视频,学员可以购买课程和预约教练以及在线充值、发帖。为了可以给用户更多的提醒,本系统中加入了当前登录角色的提示内容。管理员在系统中可以更新各种数据信息。本系统是信息化社会发展的必然产物,可以为用户提供更为高效的管理以及辅助,同时也可以改变健身房管理的局面,提高效率。 登录功能为管理员、教练和学员登录,在登录界面设计中包括用户名和密码、权限的检验。用户名和密码、权限的检验过程由数据库自动完成,此过程需要1秒左右。首先由用户填写账号和密码,选择权限,然后点击登录系统,数据库自行对用户名和密码进行对比,所填写数据正确方能进行登录,所填写数据错误则需要返回登录界面重新登录。首页界面是最直接的展示,用户可以对系统进行最直接的了解。在本功能界面里可以看到背景图片、功能导航栏,视频信息、课程信息、教练信息等。学员信息是健身房的重要组成部分,管理员可以添加学员信息,查询学员信息.。教练信息管理功能分为管理员管理教练信息和登记、查询教练信息,管理员可以看到教练的各项基本信息,可以删除教练的基本信息。系统里展示的健身视频都可以由管理员进行审核和添加管理,教练也可以发布视频。管理员可以输入视频名称和上传视频来实现健身视频的添加。管理员和教练可以上传培训课程,学员可以浏览课程信息。管理员和教练都可以管理预约信息,学员在看到教练后可以进行预约。管理员可以审核帖子信息。管理员、教练和学员都可以管理订单信息。学员在课程详情里可以购买课程。学员在教练详情里可以评价、收藏以及预约。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值