D. Three Logos

Three companies decided to order a billboard with pictures of their logos. A billboard is a big square board. A logo of each company is a rectangle of a non-zero area.

Advertisers will put up the ad only if it is possible to place all three logos on the billboard so that they do not overlap and the billboard has no empty space left. When you put a logo on the billboard, you should rotate it so that the sides were parallel to the sides of the billboard.

Your task is to determine if it is possible to put the logos of all the three companies on some square billboard without breaking any of the described rules.

Input

The first line of the input contains six positive integers x1, y1, x2, y2, x3, y3 (1 ≤ x1, y1, x2, y2, x3, y3 ≤ 100), where xi and yi determine the length and width of the logo of the i-th company respectively.

Output

If it is impossible to place all the three logos on a square shield, print a single integer "-1" (without the quotes).

If it is possible, print in the first line the length of a side of square n, where you can place all the three logos. Each of the next n lines should contain n uppercase English letters "A", "B" or "C". The sets of the same letters should form solid rectangles, provided that:

  • the sizes of the rectangle composed from letters "A" should be equal to the sizes of the logo of the first company,
  • the sizes of the rectangle composed from letters "B" should be equal to the sizes of the logo of the second company,
  • the sizes of the rectangle composed from letters "C" should be equal to the sizes of the logo of the third company,

Note that the logos of the companies can be rotated for printing on the billboard. The billboard mustn't have any empty space. If a square billboard can be filled with the logos in multiple ways, you are allowed to print any of them.

See the samples to better understand the statement.

Sample test(s)
input
5 1 2 5 5 2
output
5
AAAAA
BBBBB
BBBBB
CCCCC
CCCCC
input
4 4 2 6 4 2
output
6
BBBBBB
BBBBBB
AAAACC
AAAACC
AAAACC
AAAACC
///
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<queue>
#include<cmath>
#include<map>
#include<bitset>
#include<set>
#include<vector>
using namespace std ;
typedef long long ll;
#define mem(a) memset(a,0,sizeof(a))
#define meminf(a) memset(a,127,sizeof(a));
#define TS printf("111111\n");
#define FOR(i,a,b) for( int i=a;i<=b;i++)
#define FORJ(i,a,b) for(int i=a;i>=b;i--)
#define READ(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define mod 1000000007
#define inf 100000
inline ll read()
{
ll x=,f=;
char ch=getchar();
while(ch<''||ch>'')
{
if(ch=='-')f=-;
ch=getchar();
}
while(ch>=''&&ch<='')
{
x=x*+ch-'';
ch=getchar();
}
return x*f;
}
//**************************************** int main()
{ int x1=read(),y1=read(),x2=read(),y2=read(),x3=read(),y3=read();
if(x1<y1)swap(x1,y1);
if(x2<y2)swap(x2,y2);
if(x3<y3)swap(x3,y3);
int L=max(x1,max(x2,x3));
if(L*L!=x1*y1+x2*y2+x3*y3){cout<<-<<endl;return ;}
if(L==x1&&L==x2&&L==x3){
cout<<L<<endl;
FOR(i,,y1){FOR(j,,L)
{
cout<<"A";
}
cout<<endl;}
FOR(i,,y2){FOR(j,,L)
{
cout<<"B";
}
cout<<endl;}
FOR(i,,y3){FOR(j,,L)
{
cout<<"C";
}
cout<<endl;} }
else {
if(x1==L)
{
if (x2==L-y1)swap(x2,y2);if(x3==L-y1)swap(x3,y3);
if(x2+x3!=L||y1+y2!=L||y2!=y3){
cout<<-<<endl;return ;
}
cout<<L<<endl;
FOR(i,,L-y1){
FOR(j,,x2)cout<<"B";
FOR(j,,x3)cout<<"C";
cout<<endl; }
FOR(i,,y1){FOR(j,,L){
cout<<"A";
}cout<<endl;}
}
else if(x2==L)
{
if (x1==L-y2)swap(x1,y1);if (x3==L-y2)swap(x3,y3);
if(x1+x3!=L||y2+y3!=L||y1!=y3){
cout<<-<<endl;return ;
}
cout<<L<<endl;
FOR(i,,L-y2){
FOR(j,,x1)cout<<"A";
FOR(j,,x3)cout<<"C";
cout<<endl; }
FOR(i,,y2){FOR(j,,L){
cout<<"B";
}cout<<endl;}
}else if(x3==L)
{
if (x2==L-y3)swap(x2,y2);if (x1==L-y3)swap(x1,y1);
if(x2+x1!=L||y3+y2!=L||y2!=y1){
cout<<-<<endl;return ;
}
cout<<L<<endl;
FOR(i,,L-y3){
FOR(j,,x1)cout<<"A";
FOR(j,,x2)cout<<"B";
cout<<endl; }
FOR(i,,y3){FOR(j,,L){
cout<<"C";
}cout<<endl;}
}
}
return ;
}

模拟

Codeforces Round #322 (Div. 2) D. Three Logos 模拟的更多相关文章

  1. Codeforces Round #322 (Div. 2) D. Three Logos 暴力

    D. Three Logos Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/581/problem ...

  2. Codeforces Round #368 (Div. 2) B. Bakery (模拟)

    Bakery 题目链接: http://codeforces.com/contest/707/problem/B Description Masha wants to open her own bak ...

  3. Codeforces Round #284 (Div. 2)A B C 模拟 数学

    A. Watching a movie time limit per test 1 second memory limit per test 256 megabytes input standard ...

  4. Codeforces Round #285 (Div. 2) A B C 模拟 stl 拓扑排序

    A. Contest time limit per test 1 second memory limit per test 256 megabytes input standard input out ...

  5. Codeforces Round #322 (Div. 2) C. Developing Skills 优先队列

    C. Developing Skills Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/581/p ...

  6. Codeforces Round #322 (Div. 2) B. Luxurious Houses 水题

    B. Luxurious Houses Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/581/pr ...

  7. Codeforces Round #322 (Div. 2) A. Vasya the Hipster 水题

    A. Vasya the Hipster Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/581/p ...

  8. Codeforces Round #322 (Div. 2)

    水 A - Vasya the Hipster /************************************************ * Author :Running_Time * C ...

  9. Codeforces Round #322 (Div. 2) —— F. Zublicanes and Mumocrates

    It's election time in Berland. The favorites are of course parties of zublicanes and mumocrates. The ...

随机推荐

  1. 递归删除N天前的文件夹及子文件夹下的特定文件

    @echo offrem 设置被删除文件夹路径set SrcDir=D:\tmp\test\rem 设置文件保存天数set Days=2rem /p指定搜索文件的路径 /s 在子目录中搜索 /m 指定 ...

  2. bzoj1174 Toponyms

    给你一个字符集合,你从其中找出一些字符串出来. 希望你找出来的这些字符串的最长公共前缀*字符串的总个数最大化. 第一行给出数字N.N在[2,1000000] 下面N行描述这些字符串,长度不超过2000 ...

  3. PHP明细之间的关联和having进行分组,不推荐这样做,只是做为偷懒的办法

    -- 只求和wrt的数据,其它数据保持不变!SELECT A.return_id,A.relevant_id,A.order_id,A.deliver_order_id,A.product_id,A. ...

  4. php-fpm进程数管理

    PHP-FPM 先来了解一些名词概念: CGI是Common Gateway Interface(通用网管协议),用于让交互程序和Web服务器通信的协议.它负责处理URL的请求,启动一个进程,将客户端 ...

  5. python_流程控制

    1.if...else 语句 单分支 if 条件:    满足条件后要执行的代码 双分支: """ if 条件: 满足条件执行代码 else: if条件不满足就走这段 & ...

  6. Hermite (埃尔米特)曲线

    Hermite 曲线 已知曲线的两个端点坐标P0.P1,和端点处的切线R0.R1,确定的一条曲线. 参数方程 1. 几何形式 2. 矩阵形式 3. 推导 例子分析 如上图有四个点,假如P0.P2是端点 ...

  7. xcap发包工具的简单使用2(发送报文)

    上一篇文章介绍了如何构造报文,现在简单讲一下发送报文的步骤 1.获取接口列表 点击主界面工具栏中的“刷新列表”按钮(或对应菜单“interface->Reference interfaces”) ...

  8. String replaceAll-正则匹配-截取以指定字符开头,以指定字符结尾的字符串

    scala代码块 截取以某个字符开头,以某个字符结尾的字符串 def main(args: Array[String]): Unit = { val s = "{{a61,a2,a3},{b ...

  9. HDU 4948 (傻比图论)

    Kingdom Problem Description Teacher Mai has a kingdom consisting of n cities. He has planned the tra ...

  10. hdu——2586 How far away ?

    How far away ? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...