Submission #1572086
Source Code Expand
#include <stdio.h>
#include <stdlib.h>
#define QUEEN_NUM 8
#define COLUMN_NUM 8
char queen_p[QUEEN_NUM + 1][QUEEN_NUM + 1] = {
"........",
"........",
"........",
"........",
"........",
"........",
"........",
"........",
"........"
};
int x[QUEEN_NUM] = {8, 8, 8, 8, 8, 8, 8, 8};
int y[QUEEN_NUM] = {8, 8, 8, 8, 8, 8, 8, 8};
void update_queens(void)
{
int i;
for(i = 0; i < QUEEN_NUM; i++)
queen_p[y[i]][x[i]] = 'Q';
}
void disp_queens(void)
{
int i, j;
for(i = 0; i < QUEEN_NUM; i++) {
for(j = 0; j < QUEEN_NUM; j++) {
printf("%c", queen_p[i][j]);
}
puts("");
}
}
int is_exists_in_cross(int queen_num)
{
int i;
for(i = 0; i < queen_num; i++)
if(abs(x[queen_num] - x[i]) == abs(y[queen_num] - y[i]))
return 1;
return 0;
}
int is_exists_in_column(int queen_num)
{
int i;
for(i = 0; i < queen_num; i++)
if(x[queen_num] == x[i])
return 1;
return 0;
}
void queen(int queen_num)
{
int i;
if(queen_num == QUEEN_NUM - 1) {
for(i = 0; i < COLUMN_NUM; i++) {
x[queen_num] = i;
if(is_exists_in_column(queen_num))
continue;
if(is_exists_in_cross(queen_num))
continue;
update_queens();
disp_queens();
exit(0);
}
} else {
for(i = 0; i < COLUMN_NUM; i++) {
x[queen_num] = i;
if(is_exists_in_column(queen_num))
continue;
if(is_exists_in_cross(queen_num))
continue;
queen(queen_num + 1);
}
}
}
int main(void)
{
int i, j, queen_i, queen_fix;
// read data
{
for(i = queen_i = 0; i < QUEEN_NUM; i++) {
char ch;
int Q_ctr = 0;
for(j = 0; (ch = fgetc(stdin)) != '\n'; j++) {
if(ch == 'Q') {
if(++Q_ctr >= 2)
goto noanswer;
x[queen_i] = j;
y[queen_i] = i;
if(is_exists_in_cross(queen_i))
goto noanswer;
if(is_exists_in_column(queen_i))
goto noanswer;
queen_i++;
}
}
}
}
queen_fix = queen_i;
// load y
for(i = 0; i < QUEEN_NUM; i++){
if(i == y[0] || i == y[1] || i == y[2])
continue;
y[queen_i++] = i;
}
// queen
queen(queen_fix);
noanswer:
puts("No Answer");
return 0;
}
Submission Info
Submission Time |
|
Task |
A - センター採点 |
User |
n_kei |
Language |
C (GCC 5.4.1) |
Score |
0 |
Code Size |
2198 Byte |
Status |
TLE |
Exec Time |
2103 ms |
Memory |
128 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, 02_all_1.txt, 02_all_2.txt, 02_all_3.txt, 02_all_4.txt, 03_mini_1.txt, 03_mini_2.txt, 03_mini_3.txt, 03_mini_4.txt |
Case Name |
Status |
Exec Time |
Memory |
00_sample1.txt |
TLE |
2103 ms |
128 KB |
00_sample2.txt |
TLE |
2103 ms |
128 KB |
01_rnd_00.txt |
TLE |
2103 ms |
128 KB |
01_rnd_01.txt |
TLE |
2103 ms |
128 KB |
01_rnd_02.txt |
TLE |
2103 ms |
128 KB |
01_rnd_03.txt |
TLE |
2103 ms |
128 KB |
01_rnd_04.txt |
TLE |
2103 ms |
128 KB |
01_rnd_05.txt |
TLE |
2103 ms |
128 KB |
01_rnd_06.txt |
TLE |
2103 ms |
128 KB |
01_rnd_07.txt |
TLE |
2103 ms |
128 KB |
01_rnd_08.txt |
TLE |
2103 ms |
128 KB |
01_rnd_09.txt |
TLE |
2103 ms |
128 KB |
01_rnd_10.txt |
TLE |
2103 ms |
128 KB |
01_rnd_11.txt |
TLE |
2103 ms |
128 KB |
01_rnd_12.txt |
TLE |
2103 ms |
128 KB |
01_rnd_13.txt |
TLE |
2103 ms |
128 KB |
01_rnd_14.txt |
TLE |
2103 ms |
128 KB |
01_rnd_15.txt |
TLE |
2103 ms |
128 KB |
01_rnd_16.txt |
TLE |
2103 ms |
128 KB |
01_rnd_17.txt |
TLE |
2103 ms |
128 KB |
01_rnd_18.txt |
TLE |
2103 ms |
128 KB |
01_rnd_19.txt |
TLE |
2103 ms |
128 KB |
02_all_1.txt |
TLE |
2103 ms |
128 KB |
02_all_2.txt |
TLE |
2103 ms |
128 KB |
02_all_3.txt |
TLE |
2103 ms |
128 KB |
02_all_4.txt |
TLE |
2103 ms |
128 KB |
03_mini_1.txt |
TLE |
2103 ms |
128 KB |
03_mini_2.txt |
TLE |
2103 ms |
128 KB |
03_mini_3.txt |
TLE |
2103 ms |
128 KB |
03_mini_4.txt |
TLE |
2103 ms |
128 KB |