#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 8
int main() {
int board[SIZE][SIZE];
int queensPlaced = 0;
while (queensPlaced < SIZE) {
for (int r = 0; r < SIZE; r++) {
for (int c = 0; c < SIZE; c++) {
board[r][c] = 0;
}
}
queensPlaced = 0;
for (int q = 0; q < SIZE; q++) {
int validMoves = 0;
for (int r = 0; r < SIZE; r++) {
for (int c = 0; c < SIZE; c++) {
if (board[r][c] == 0) {
validMoves++;
}
}
}
if (validMoves == 0) {
break;
}
int move
= rand() % validMoves
; int count = 0;
int placed = 0;
for (int r = 0; r < SIZE && !placed; r++) {
for (int c = 0; c < SIZE && !placed; c++) {
if (board[r][c] == 0) {
if (count == move) {
board[r][c] = 1;
queensPlaced++;
placed = 1;
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
if (board[i][j] == 0 && !(i == r && j == c)) {
if (i == r || j == c || (i - j) == (r - c) || (i + j) == (r + c)) {
board[i][j] = -1;
}
}
}
}
}
count++;
}
}
}
}
}
for (int r = 0; r < SIZE; r++) {
for (int c = 0; c < SIZE; c++) {
if (board[r][c] == 1) {
} else {
}
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHRpbWUuaD4KCiNkZWZpbmUgU0laRSA4CgppbnQgbWFpbigpIHsKICAgIGludCBib2FyZFtTSVpFXVtTSVpFXTsKICAgIGludCBxdWVlbnNQbGFjZWQgPSAwOwogICAgCiAgICBzcmFuZCh0aW1lKE5VTEwpKTsKCiAgICB3aGlsZSAocXVlZW5zUGxhY2VkIDwgU0laRSkgewogICAgICAgIGZvciAoaW50IHIgPSAwOyByIDwgU0laRTsgcisrKSB7CiAgICAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgU0laRTsgYysrKSB7CiAgICAgICAgICAgICAgICBib2FyZFtyXVtjXSA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcXVlZW5zUGxhY2VkID0gMDsKICAgICAgICAKICAgICAgICBmb3IgKGludCBxID0gMDsgcSA8IFNJWkU7IHErKykgewogICAgICAgICAgICBpbnQgdmFsaWRNb3ZlcyA9IDA7CiAgICAgICAgICAgIGZvciAoaW50IHIgPSAwOyByIDwgU0laRTsgcisrKSB7CiAgICAgICAgICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IFNJWkU7IGMrKykgewogICAgICAgICAgICAgICAgICAgIGlmIChib2FyZFtyXVtjXSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkTW92ZXMrKzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICh2YWxpZE1vdmVzID09IDApIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpbnQgbW92ZSA9IHJhbmQoKSAlIHZhbGlkTW92ZXM7CiAgICAgICAgICAgIGludCBjb3VudCA9IDA7CiAgICAgICAgICAgIGludCBwbGFjZWQgPSAwOwogICAgICAgICAgICAKICAgICAgICAgICAgZm9yIChpbnQgciA9IDA7IHIgPCBTSVpFICYmICFwbGFjZWQ7IHIrKykgewogICAgICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBTSVpFICYmICFwbGFjZWQ7IGMrKykgewogICAgICAgICAgICAgICAgICAgIGlmIChib2FyZFtyXVtjXSA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCA9PSBtb3ZlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2FyZFtyXVtjXSA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVlbnNQbGFjZWQrKzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlZCA9IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgU0laRTsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBTSVpFOyBqKyspIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJvYXJkW2ldW2pdID09IDAgJiYgIShpID09IHIgJiYgaiA9PSBjKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0gciB8fCBqID09IGMgfHwgKGkgLSBqKSA9PSAociAtIGMpIHx8IChpICsgaikgPT0gKHIgKyBjKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvYXJkW2ldW2pdID0gLTE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgY291bnQrKzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZm9yIChpbnQgciA9IDA7IHIgPCBTSVpFOyByKyspIHsKICAgICAgICBmb3IgKGludCBjID0gMDsgYyA8IFNJWkU7IGMrKykgewogICAgICAgICAgICBpZiAoYm9hcmRbcl1bY10gPT0gMSkgewogICAgICAgICAgICAgICAgcHJpbnRmKCIgUSAiKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHByaW50ZigiIC4gIik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcHJpbnRmKCJcbiIpOwogICAgfQoKICAgIHJldHVybiAwOwp9