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
TLE × 30
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