题目链接:http://codeforces.com/problemset/problem/475/A
题目意思:输入一个整数 k(0 ≤ k ≤ 34),表示participants的人数,需要在一部34座的车上为每个人安排位置。这部车除了最后面那行有 4 个位,其他行都有3个位(应该是留一些空间作为过道吧~~)。对于每一行的座位,首先是从这个人的左手边坐起的(面朝向司机)。现在要输出分配完座位后的车的状况是怎样的。
画图题呀~~~还打算一行行输出滴,看那些装饰看到眼睛都花了(近视伤不起)。当知道可以用一个二维数组可以存储那些花俏的东西之后,不禁感叹别人的聪明呀~~然后从上到下遍历,将 '#' 用 'O' 来替代即可!数够 k 个就可以了。注意是英文大写字母 O,不是阿拉伯数字 0 ~~~又在欺负近视的孩子了= =
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std; const int row = ;
const int col = ; int main()
{
int k;
while (scanf("%d", &k) != EOF)
{
char s[row][col] = {
"+------------------------+",
"|#.#.#.#.#.#.#.#.#.#.#.|D|)",
"|#.#.#.#.#.#.#.#.#.#.#.|.|",
"|#.......................|",
"|#.#.#.#.#.#.#.#.#.#.#.|.|)",
"+------------------------+",
};
for (int i = ; i < k; i++)
{
bool flag = true;
for (int j = ; j < col && flag; j += )
{
for (int l = ; l < row && flag; l++)
{
if (s[l][j] == '#')
{
s[l][j] = 'O';
flag = false;
break;
}
}
}
}
for (int i = ; i < row; i++)
printf("%s\n", s[i]);
}
return ;
}