Submission #1289581
Source Code Expand
#include <stdio.h> #include <string.h> #include <iostream> #include<string> using namespace std; #define N 8 string T[8]; void printQueen(int queen[N]) { int i; int sum = 0; for (i = 0; i < N; i++) { if (T[i][queen[i]] == 'Q')sum++; } if (sum != 3)return; for (i = 0; i < N; i++) { for (int j = 0; j < N; j++) { if (queen[i] == j)cout << 'Q'; else cout << '.'; } printf("\n"); } exit(0); } /* (i,j)の位置から縦横斜めの方向にある board のすべての要素の値に dを加える */ void changeBoard(int board[N][N], int i, int j, int d) { int k; for (k = 0; k < N; k++) { board[i][k] += d; /* 横方向 */ board[k][j] += d; /* 縦方向 */ } if (i > j) { for (k = 0; k < N - (i - j); k++) { board[k + (i - j)][k] += d; /* 右下がり斜め方向 (i > jのとき) */ } } else { for (k = 0; k < N - (j - i); k++) { board[k][k + (j - i)] += d; /* 右下がり斜め方向 (i <= jのとき) */ } } if (i + j < N) { for (k = 0; k <= i + j; k++) { board[i + j - k][k] += d; /* 左下がり斜め方向(i +j < Nのとき) */ } } else { for (k = i + j - N + 1; k < N; k++) { board[i + j - k][k] += d; /* 左下がり斜め方向(i+j >= Nのとき) */ } } } /* i 行目のクイーンの位置を設定して, setQueen(queen, board, i+1) を呼び出す ただし, i == N のときは,一つの解が queen に入っているのでそれを表示するだけである */ void setQueen(int queen[N], int board[N][N], int i) { int j; if (i == N) { /* 解が見つかった */ printQueen(queen); return; } for (j = 0; j < N; j++) { if (board[i][j] == 0) { /* (i,j) の位置に置けるならば */ queen[i] = j; /* (i,j) の位置にクイーンを置く */ changeBoard(board, i, j, +1); /* (i,j) から縦横斜めの方向のboard値を+1する */ setQueen(queen, board, i + 1); /* i+1 行目のクイーンの位置を決める */ changeBoard(board, i, j, -1); /* (i,j) から縦横斜めの方向のboard値を元に戻す */ } } } signed main() { for (int i = 0; i < 8; i++) { cin >> T[i]; } int queen[N]; int board[N][N]; memset(board, 0, sizeof(board)); setQueen(queen, board, 0); }
Submission Info
Submission Time | |
---|---|
Task | C - パズルのお手伝い |
User | naoki2016 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2434 Byte |
Status | WA |
Exec Time | 1 ms |
Memory | 256 KB |
Judge Result
Set Name | All | ||||
---|---|---|---|---|---|
Score / Max Score | 0 / 100 | ||||
Status |
|
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 | AC | 1 ms | 256 KB |
00_sample2.txt | WA | 1 ms | 256 KB |
01_rnd_00.txt | WA | 1 ms | 256 KB |
01_rnd_01.txt | AC | 1 ms | 256 KB |
01_rnd_02.txt | WA | 1 ms | 256 KB |
01_rnd_03.txt | WA | 1 ms | 256 KB |
01_rnd_04.txt | WA | 1 ms | 256 KB |
01_rnd_05.txt | WA | 1 ms | 256 KB |
01_rnd_06.txt | WA | 1 ms | 256 KB |
01_rnd_07.txt | WA | 1 ms | 256 KB |
01_rnd_08.txt | WA | 1 ms | 256 KB |
01_rnd_09.txt | WA | 1 ms | 256 KB |
01_rnd_10.txt | WA | 1 ms | 256 KB |
01_rnd_11.txt | WA | 1 ms | 256 KB |
01_rnd_12.txt | WA | 1 ms | 256 KB |
01_rnd_13.txt | AC | 1 ms | 256 KB |
01_rnd_14.txt | WA | 1 ms | 256 KB |
01_rnd_15.txt | WA | 1 ms | 256 KB |
01_rnd_16.txt | WA | 1 ms | 256 KB |
01_rnd_17.txt | WA | 1 ms | 256 KB |
01_rnd_18.txt | AC | 1 ms | 256 KB |
01_rnd_19.txt | AC | 1 ms | 256 KB |
01_rnd_20.txt | WA | 1 ms | 256 KB |
01_rnd_21.txt | WA | 1 ms | 256 KB |
01_rnd_22.txt | WA | 1 ms | 256 KB |
01_rnd_23.txt | WA | 1 ms | 256 KB |
01_rnd_24.txt | WA | 1 ms | 256 KB |
01_rnd_25.txt | AC | 1 ms | 256 KB |
01_rnd_26.txt | WA | 1 ms | 256 KB |
01_rnd_27.txt | AC | 1 ms | 256 KB |
01_rnd_28.txt | WA | 1 ms | 256 KB |
01_rnd_29.txt | WA | 1 ms | 256 KB |
01_rnd_30.txt | WA | 1 ms | 256 KB |
01_rnd_31.txt | WA | 1 ms | 256 KB |
01_rnd_32.txt | AC | 1 ms | 256 KB |
01_rnd_33.txt | WA | 1 ms | 256 KB |
01_rnd_34.txt | WA | 1 ms | 256 KB |
01_rnd_35.txt | WA | 1 ms | 256 KB |
01_rnd_36.txt | WA | 1 ms | 256 KB |
01_rnd_37.txt | WA | 1 ms | 256 KB |
01_rnd_38.txt | WA | 1 ms | 256 KB |
01_rnd_39.txt | WA | 1 ms | 256 KB |