Submission #5188


Source Code Expand

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

int main(){
	int kCol = 8;
	int kRow = 8;
	std::vector<std::string> board(kCol);
	for(int i = 0; i < kCol; ++i){
		std::getline(std::cin, board[i]);
	}

	std::vector<std::string> new_board(kCol, "........");
	auto put_qween = [&](int put_col, int put_row) -> bool{
		//置いてもいいか横に見ていく
		for(int i = 0; i < kRow; ++i){
			while(new_board[put_col][i] == 'Q' && i != put_row){
				return false;
			}
		}
		//次、縦に
		for(int i = 0; i < kCol; ++i){
			while(new_board[i][put_row] == 'Q' && i != put_col){
				return false;
			}
		}
		//左上から右下に
		{
			int i = put_col - std::min(put_col, put_row);
			int j = put_row - std::min(put_col, put_row);
			while(i < kCol && j < kRow){
				if((new_board[i][j] == 'Q') && (i != put_col && j != put_row)){
					return false;
				}
				++i;
				++j;
			}
		}

		//右上から左下に
		{
			int i = put_col - std::min(put_col, kRow - put_row);
			int j = put_row + std::min(put_col, kRow - put_row);
			while(i < kCol && j >= 0){
				if((new_board[i][j] == 'Q') && (i != put_col && j != put_row)){
					return false;
				}
				++i;
				--j;
			}
		}

		new_board[put_col][put_row] = 'Q';
		return true;
	};

	for(int i = 0; i < kCol; ++i){
		for(int j = 0; j < kRow; ++j){
			if(board[i][j] == 'Q'){
				std::cout << i << " " << j << std::endl;
				if(put_qween(i, j) == false){
					std::cout << "No Answer" << std::endl;
					return 0;
				}
			}
		}
	}

	for(int i = 0; i < kCol; ++i){
		for(int j = 0; j < kRow; ++j){
			put_qween(i, j);
		}
	}

	std::for_each(std::begin(new_board), std::end(new_board),
		[](std::string col){ std::cout << col << std::endl; });

	return 0;
}

Submission Info

Submission Time
Task C - パズルのお手伝い
User azsprinkle
Language C++11 (GCC 4.8.1)
Score 0
Code Size 1818 Byte
Status WA
Exec Time 29 ms
Memory 700 KB

Judge Result

Set Name all
Score / Max Score 0 / 100
Status
WA × 42
Set Name Test Cases
all 00_sample1.txt, 00_sample2.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 01_rnd_20.txt, 01_rnd_21.txt, 01_rnd_22.txt, 01_rnd_23.txt, 01_rnd_24.txt, 01_rnd_25.txt, 01_rnd_26.txt, 01_rnd_27.txt, 01_rnd_28.txt, 01_rnd_29.txt, 01_rnd_30.txt, 01_rnd_31.txt, 01_rnd_32.txt, 01_rnd_33.txt, 01_rnd_34.txt, 01_rnd_35.txt, 01_rnd_36.txt, 01_rnd_37.txt, 01_rnd_38.txt, 01_rnd_39.txt
Case Name Status Exec Time Memory
00_sample1.txt WA 19 ms 128 KB
00_sample2.txt WA 20 ms 128 KB
01_rnd_00.txt WA 20 ms 0 KB
01_rnd_01.txt WA 19 ms 700 KB
01_rnd_02.txt WA 20 ms 684 KB
01_rnd_03.txt WA 19 ms 128 KB
01_rnd_04.txt WA 19 ms 128 KB
01_rnd_05.txt WA 20 ms 128 KB
01_rnd_06.txt WA 20 ms 128 KB
01_rnd_07.txt WA 19 ms 684 KB
01_rnd_08.txt WA 29 ms 128 KB
01_rnd_09.txt WA 19 ms 128 KB
01_rnd_10.txt WA 19 ms 128 KB
01_rnd_11.txt WA 20 ms 696 KB
01_rnd_12.txt WA 18 ms 128 KB
01_rnd_13.txt WA 20 ms 692 KB
01_rnd_14.txt WA 19 ms 128 KB
01_rnd_15.txt WA 20 ms 128 KB
01_rnd_16.txt WA 19 ms 128 KB
01_rnd_17.txt WA 19 ms 128 KB
01_rnd_18.txt WA 19 ms 128 KB
01_rnd_19.txt WA 18 ms 128 KB
01_rnd_20.txt WA 18 ms 128 KB
01_rnd_21.txt WA 19 ms 128 KB
01_rnd_22.txt WA 19 ms 128 KB
01_rnd_23.txt WA 20 ms 696 KB
01_rnd_24.txt WA 19 ms 0 KB
01_rnd_25.txt WA 18 ms 128 KB
01_rnd_26.txt WA 19 ms 128 KB
01_rnd_27.txt WA 19 ms 128 KB
01_rnd_28.txt WA 19 ms 128 KB
01_rnd_29.txt WA 20 ms 0 KB
01_rnd_30.txt WA 18 ms 128 KB
01_rnd_31.txt WA 19 ms 128 KB
01_rnd_32.txt WA 20 ms 684 KB
01_rnd_33.txt WA 19 ms 128 KB
01_rnd_34.txt WA 19 ms 692 KB
01_rnd_35.txt WA 18 ms 128 KB
01_rnd_36.txt WA 19 ms 128 KB
01_rnd_37.txt WA 19 ms 128 KB
01_rnd_38.txt WA 19 ms 128 KB
01_rnd_39.txt WA 19 ms 128 KB