#include <iostream>
#include <vector>
#include <string>
using namespace std;
void PrintQueens(const vector<int>& queens) {
for (const int& queen : queens) {
string s(8, '-');
s[queen] = '*';
cout<<s<<endl;
}
cout<<endl;
}
bool IsQueenPlaceable(const vector<int>& queens, int y) {
for (int cy : queens) {
if (cy == y) return false;
}
for (int cx = 0; cx < queens.size(); ++cx) {
const int x = queens.size();
const int cy = queens[cx];
if (x - cx == abs(y - cy)) return false;
}
return true;
}
void DoCalcQueens(vector<int>& queens) {
if (queens.size() >= 8) {
PrintQueens(queens);
return;
}
for (int i = 0; i < 8; ++i) {
if (IsQueenPlaceable(queens, i)) {
queens.push_back(i);
DoCalcQueens(queens);
queens.pop_back();
}
}
}
void CalcQueens() {
vector<int> queens;
DoCalcQueens(queens);
}
int main() {
CalcQueens();
return 0;
}