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