zoukankan      html  css  js  c++  java
  • CF AIM Tech Round 3 (Div. 2) D

    模拟

    首先可以求出 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
    ");
    			else if(b == 0 && c == 0) {
    				for(int i = 0; i < t1; ++i) printf("0"); printf("
    ");
    			}else if(b+c == t1) {
    				if(t1 == 1) {
    					if(b) printf("01
    ");
    					else printf("10
    ");
    					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("
    ");
    			}
    			else printf("Impossible
    ");
    			continue;
    		}else if(a == 0) {
    			if(!suc) printf("Impossible
    ");
    			else if(b == 0 && c == 0) {
    				for(int i = 0; i < t2; ++i) printf("1"); printf("
    ");
    			}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("
    ");
    			}
    			else printf("Impossible
    ");
    			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("
    ");
    		}
    		else printf("Impossible
    ");
    	}
    	return 0;	
    }
    


  • 相关阅读:
    第十七章 Mnesia: Erlang数据库
    第十六章 OTP概述
    第十五章 ETS和DETS:大数据的存储机制
    第十四章 套接字编程
    第十三章 对文件编程
    nginx启动、关闭、重启及常用的命令
    《山海经》异兽75种,附图
    Spring中Configuration的理解
    Spring Boot学习一之Spring Beans和依赖注入
    Spring Boot学习一之配置类及自动配置
  • 原文地址:https://www.cnblogs.com/Basasuya/p/8433757.html
Copyright © 2011-2022 走看看