ACM思维题训练集合
C. A Mist of Florescence
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
As the boat drifts down the river, a wood full of blossoms shows up on the riverfront.
"I've been here once," Mino exclaims with delight, "it's breathtakingly amazing."
"What is it like?"
"Look, Kanno, you've got your paintbrush, and I've got my words. Have a try, shall we?"
There are four kinds of flowers in the wood, Amaranths, Begonias, Centaureas and Dianthuses.
The wood can be represented by a rectangular grid of n rows and m
According to Mino, the numbers of connected components formed by each kind of flowers are a, b, c and d
You are to help Kanno depict such a grid of flowers, with n and m
Note that you can choose arbitrary n and m
Input
The first and only line of input contains four space-separated integers a, b, c and d ( ( leq a, b, c, d leq 100
Output
In the first line, output two space-separated integers n and m ( ( leq n, m leq 50
Then output n lines each consisting of m
In case there are multiple solutions, print any. You can output each letter in either case (upper or lower).
Examples
Input
Copy
代码语言:javascript复制5 3 2 1
Output
Copy
代码语言:javascript复制4 7
DDDDDDD
DABACAD
DBABACD
DDDDDDD
Input
Copy
代码语言:javascript复制50 50 1 1
Output
Copy
代码语言:javascript复制4 50
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
ABABABABABABABABABABABABABABABABABABABABABABABABAB
BABABABABABABABABABABABABABABABABABABABABABABABABA
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
Input
Copy
代码语言:javascript复制1 6 4 5
Output
Copy
代码语言:javascript复制7 7
DDDDDDD
DDDBDBD
DDCDCDD
DBDADBD
DDCDCDD
DBDBDDD
DDDDDDD
Note
In the first example, each cell of Amaranths, Begonias and Centaureas forms a connected component, while all the Dianthuses form one.
傻逼构造题,我是垃圾
分成四块涂成四种颜色,然后,点点。
代码语言:javascript复制#include <bits/stdc .h>
using namespace std;
template <typename t>
void read(t &x)
{
char ch = getchar();
x = 0;
t f = 1;
while (ch < '0' || ch > '9')
f = (ch == '-' ? -1 : f), ch = getchar();
while (ch >= '0' && ch <= '9')
x = x * 10 ch - '0', ch = getchar();
x *= f;
}
#define wi(n) printf("%d ", n)
#define wl(n) printf("%lld ", n)
#define rep(m, n, i) for (int i = m; i < n; i)
#define rrep(m, n, i) for (int i = m; i > n; --i)
#define P puts(" ")
typedef long long ll;
#define MOD 1000000007
#define mp(a, b) make_pair(a, b)
#define N 1005
#define fil(a, n) rep(0, n, i) read(a[i])
//---------------https://lunatic.blog.csdn.net/-------------------//
int mapp[100][100];
int a[5];
int main()
{
memset(mapp, 0, sizeof(mapp));
for (int i = 1; i <= 4; i )
{
scanf("%d", &a[i]);
a[i]--;
}
int p = 2;
int q = 2;
for (int i = 1; i <= a[1]; i )
{
mapp[p][q] = 1;
p = 2;
if (p > 24)
{
p = 2;
q = 2;
}
}
p = 27;
q = 2;
for (int i = 1; i <= a[2]; i )
{
mapp[p][q] = 2;
p = 2;
if (p > 49)
{
p = 27;
q = 2;
}
}
p = 2;
q = 27;
for (int i = 1; i <= a[3]; i )
{
mapp[p][q] = 3;
p = 2;
if (p > 24)
{
p = 2;
q = 2;
}
}
p = 27;
q = 27;
for (int i = 1; i <= a[4]; i )
{
//cout<<"p="<<p<<" q="<<q<<endl;
mapp[p][q] = 4;
p = 2;
if (p > 49)
{
p = 27;
q = 2;
}
}
cout << "50 50" << endl;
for (int i = 1; i <= 50; i )
{
for (int j = 1; j <= 50; j )
{
if (mapp[i][j] == 1 || mapp[i][j] == 0 && i >= 26 && j >= 26)
cout << 'A';
else if (mapp[i][j] == 2 || mapp[i][j] == 0 && i <= 25 && j >= 26)
cout << 'B';
else if (mapp[i][j] == 3 || mapp[i][j] == 0 && i >= 26 && j <= 25)
cout << 'C';
else
cout << 'D';
}
cout << endl;
}
return 0;
}