結果

提出番号 956
提出者 delta71
言語 C++
提出日時 2017-08-01 16:14:55
問題名 (42)オセロ
結果 AC
点数 100%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 100% 1ms 7952KB
2 AC 100% 1ms 8320KB
3 AC 100% 1ms 8320KB
4 AC 100% 1ms 8304KB
5 AC 100% 1ms 7712KB

ソースコード

#include <iostream>

using namespace std;

char S[8][10] = {}, T[10] = {}, color[1] = {};
long long int C, x, y;

int main() {
	for (int i = 0; i < 8; i++) {
		cin >> S[i];
	}
	cin >> C;
	cin >> T;
	if (C == 0) {
		color[0] = 'b';
	}
	else {
		color[0] = 'w';
	}
	x = T[0] - 'A';
	y = T[1]-'1';
	for (int i = x+1; i <= 7; i++) {
		if (S[y][i] == '-')break;
		if (S[y][i] == color[0]) {
			for (int j = x + 1; j < i; j++) {
				S[y][j] = color[0];
			}
			break;
		}
	}
	for (int i = x-1; i >= 0; i--) {
		if (S[y][i] == '-')break;
		if (S[y][i] == color[0]) {
			for (int j = x - 1; j > i; j--) {
				S[y][j] = color[0];
			}
			break;
		}
	}
	for (int i = y+1; i <= 7; i++) {
		if (S[i][x] == '-')break;
		if (S[i][x] == color[0]) {
			for (int j = y + 1; j < i; j++) {
				S[j][x] = color[0];
			}
			break;
		}
	}
	for (int i = y-1; i >= 0; i--) {
		if (S[i][x] == '-')break;
		if (S[i][x] == color[0]) {
			for (int j = y - 1; j > i; j--) {
				S[j][x] = color[0];
			}
			break;
		}
	}
	for (int i = x+1, j = y+1; i <= 7 && j <= 7; i++, j++) {
		if (S[j][i] == '-')break;
		if (S[j][i] == color[0]) {
			for (int k = x + 1, l = y + 1; k<i && l<j; k++,l++) {
				S[l][k] = color[0];
			}
			break;
		}
	}
	for (int i = x-1, j = y-1; i >= 0 && j >= 0; i--, j--) {
		if (S[j][i] == '-')break;
		if (S[j][i] == color[0]) {
			for (int k = x - 1, l = y - 1; k>i && l>j; k--, l--) {
				S[l][k] = color[0];
			}
			break;
		}
	}
	for (int i = x-1, j = y+1; i >= 0 && j <= 7; i--, j++) {
		if (S[j][i] == '-')break;
		if (S[j][i] == color[0]) {
			for (int k = x - 1, l = y + 1; k>i && l<j; k--, l++) {
				S[l][k] = color[0];
			}
			break;
		}
	}
	for (int i = x+1, j = y-1; i <= 7 && j >= 0; i++, j--) {
		if (S[j][i] == '-')break;
		if (S[j][i] == color[0]) {
			for (int k = x + 1, l = y - 1; k<i && l>j; k++, l--) {
				S[l][k] = color[0];
			}
			break;
		}
	}
	S[y][x] = color[0];
	for (int i = 0; i < 8; i++) {
		cout << S[i] << endl;
	}
}