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