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;
}
CF AIM Tech Round 3 (Div. 2) D - Recover the String的更多相关文章
- AIM Tech Round 3 (Div. 2)D. Recover the String(贪心+字符串)
D. Recover the String time limit per test 1 second memory limit per test 256 megabytes input standar ...
- AIM Tech Round 3 (Div. 1) B. Recover the String 构造
B. Recover the String 题目连接: http://www.codeforces.com/contest/708/problem/B Description For each str ...
- codeforce AIM tech Round 4 div 2 B rectangles
2017-08-25 15:32:14 writer:pprp 题目: B. Rectangles time limit per test 1 second memory limit per test ...
- 【AIM Tech Round 4 (Div. 2) D Prob】
·题目:D. Interactive LowerBound ·英文题,述大意: 有一个长度为n(n<=50000)的单链表,里面的元素是递增的.链表存储在一个数组里面,给出长度n.表 ...
- AIM Tech Round 3 (Div. 2)
#include <iostream> using namespace std; ]; int main() { int n, b, d; cin >> n >> ...
- AIM Tech Round 3 (Div. 2) A B C D
虽然打的时候是深夜但是状态比较好 但还是犯了好多错误..加分场愣是打成了降分场 ABC都比较水 一会敲完去看D 很快的就想出了求0和1个数的办法 然后一直wa在第四组..快结束的时候B因为低级错误被h ...
- AIM Tech Round 3 (Div. 2) B
Description Vasya takes part in the orienteering competition. There are n checkpoints located along ...
- AIM Tech Round 3 (Div. 2) A
Description Kolya is going to make fresh orange juice. He has n oranges of sizes a1, a2, ..., an. Ko ...
- AIM Tech Round 3 (Div. 2) (B C D E) (codeforces 709B 709C 709D 709E)
rating又掉下去了.好不容易蓝了.... A..没读懂题,wa了好几次,明天问队友补上... B. Checkpoints 题意:一条直线上n个点x1,x2...xn,现在在位置a,求要经过任意n ...
随机推荐
- SqlServer varchar数据中类似于1.1.1.1这种值的排序方法
select * from 表名order by Convert(int,left(列名,charindex('.',列名+'.')-1)) asc, 列名asc charindex('.',列名) ...
- Markdown 安装图解(破解汉化教程)
http://blog.csdn.net/taokai_110/article/details/72934818 终于解决了问题
- java windows自动化-mail自动发邮件
本文旨在让测试人员了解如何发邮件 发邮件的话,最简单的事是直接手动发邮件,但是在自动化测试中,应做到让机器或者代码来自动发送邮件,笔者大概了解以下几种方法,总有一款口味适合你:1java代码来做下面即 ...
- Hadoop源码学习之HDFS(一)
Hadoop的HDFS可以分为NameNode与DataNode,NameNode存储所有DataNode中数据的元数据信息.而DataNode负责存储真正的数据(数据块)信息以及数据块的ID. Na ...
- centos 手动增加swap分区
SWAP是Linux中的虚拟内存,用于扩充物理内存不足而用来存储临时数据存在的.它类似于Windows中的虚拟内存.在Windows中,只可以使用文件来当作虚拟内存.而linux可以文件或者分区来当作 ...
- kindeditor编辑器修改文本后保存时发现获取到的内容还是修改前的文本内容
定义kindeditor的时候要加上一下几个属性设置: KindEditor.ready(function(K) { var editor = K.create("textarea[name ...
- 【学习笔记】Hibernate 一对一关联映射 组件映射 二级缓存 集合缓存
啊讲道理放假这十天不到啊 感觉生活中充满了绝望 这就又开学了 好吧好吧继续学习笔记?还是什么的 一对一关联映射 这次我们仍然准备了两个表 一个是用户表Users 一个是档案表Resume 他们的关系是 ...
- Flag
之前一直怕别人知道你在干什么,其实根本没人在乎你在干什么.做好你自己不就行了,现在这里将成为你的记录生活与学习的地方,尽管目前就你自己,但是你要相信,会有千万人和你在一起,大胆的往前走吧.--- 致自 ...
- ActiveMQ、Stomp、SockJS入门级应用
使用ActiveMQ.Stomp.SockJS实现实时在线聊天 ActiveMQ : 强大的开源即时通讯和集成模式的服务器.在本项目中充当消息代理服务器,stomp协议服务端. 安装:在官网下载,直接 ...
- pep 8 规范的一些记录
一.pep8起源 龟叔创立Python的初衷里就有创立一个容易阅读的编程语言,所以亲自操刀写了pep8 代码规范,每个项目开始前都要有一个共识,就是自己的代码规范,pep8 就是一个很好的范本. 二. ...