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;	
    }
    


  • 相关阅读:
    交换实验
    ISIS简单配置
    bgp联盟
    BGP2
    BGP 1
    BGP反射器
    ospf实验3
    bzoj 4503: 两个串
    bzoj 4259: 残缺的字符串
    COGS 2287. [HZOI 2015]疯狂的机器人
  • 原文地址:https://www.cnblogs.com/Basasuya/p/8433757.html
Copyright © 2011-2022 走看看