| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
化学课代表,1A留念#include<cstdio>
#include<cstring>
using namespace std;
char field[100][100];
int num[11][11];
int N;
int main(){
int C = 0;
while(true){
scanf("%d", &N);
if(N == 0){
break;
}
int W = (N - 1) * 3 + N + 4;
int H = (N - 1) * 3 + N;
memset(field, ' ', sizeof(field));
for(int i = 0; i < H; i ++){
field[i][W] = 0;
}
for(int i = 0; i < N; i ++){
for(int j = 0; j < N; j ++){
scanf("%d", &num[i][j]);
}
}
for(int i = 0; i < N; i ++){
for(int j = 0; j < N; j ++){
int loc_x = 4 * i;
int loc_y = 2 + j * 4;
field[loc_x][loc_y] = 'O';
if(num[i][j] == 1){
field[loc_x][loc_y - 1] = field[loc_x][loc_y + 1] = '-';
field[loc_x][loc_y - 2] = field[loc_x][loc_y + 2] = 'H';
}
if(num[i][j] == -1){
field[loc_x - 1][loc_y] = field[loc_x + 1][loc_y] = '|';
field[loc_x - 2][loc_y] = field[loc_x + 2][loc_y] = 'H';
}
}
}
for(int i = 0; i < N; i ++){
for(int j = 0; j < N; j ++){
int loc_x = 4 * i;
int loc_y = 2 + j * 4;
if(num[i][j] == 0){
int loc_1_x = loc_x, loc_1_y = loc_y - 2;
int loc_2_x = loc_x, loc_2_y = loc_y - 1;
bool flag = false;
if(loc_1_x >= 0 && loc_1_x < H && loc_1_y >= 0 && loc_1_y < W && field[loc_1_x][loc_1_y] == ' '){
field[loc_1_x][loc_1_y] = 'H';
field[loc_2_x][loc_2_y] = '-';
flag = true;
}
loc_1_x = loc_x, loc_1_y = loc_y + 2;
loc_2_x = loc_x, loc_2_y = loc_y + 1;
if(!flag && loc_1_x >= 0 && loc_1_x < H && loc_1_y >= 0 && loc_1_y < W && field[loc_1_x][loc_1_y] == ' '){
field[loc_1_x][loc_1_y] = 'H';
field[loc_2_x][loc_2_y] = '-';
}
loc_1_x = loc_x - 2, loc_1_y = loc_y;
loc_2_x = loc_x - 1, loc_2_y = loc_y;
flag = false;
if(loc_1_x >= 0 && loc_1_x < H && loc_1_y >= 0 && loc_1_y < W && field[loc_1_x][loc_1_y] == ' '){
field[loc_1_x][loc_1_y] = 'H';
field[loc_2_x][loc_2_y] = '|';
flag = true;
}
loc_1_x = loc_x + 2, loc_1_y = loc_y;
loc_2_x = loc_x + 1, loc_2_y = loc_y;
if(!flag && loc_1_x >= 0 && loc_1_x < H && loc_1_y >= 0 && loc_1_y < W && field[loc_1_x][loc_1_y] == ' '){
field[loc_1_x][loc_1_y] = 'H';
field[loc_2_x][loc_2_y] = '|';
}
}
}
}
printf("Case %d:\n\n", ++ C);
for(int i =0; i < W + 2; i ++){
putchar('*');
}
putchar('\n');
for(int i =0; i < H; i ++){
printf("*%s*\n", field[i]);
}
for(int i =0; i < W + 2; i ++){
putchar('*');
}
putchar('\n');
putchar('\n');
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator