Submission #7025100
Source Code Expand
#include <bits/stdc++.h>
#define CEIL(a,b) ((a) / (b) + ((a) % (b) == 0 ? 0 : 1))
using namespace std;
using ll = long long;
using pii = pair<int, int>;
using a5 = array<pii, 5>;
using a8 = array<int, 8>;
using a15 = array<int, 15>;
constexpr int MOD = 1'000'000'007;
constexpr int INF = 1'000'000'001;
constexpr ll LLINF = 4'000'000'000'000'000'001;
// constexpr int INF = 2147483647; // 2 * 1e9
// constexpr ll LLINF = 9223372036854775807; // 9 * 1e18
const int dx[] = {1, 0, -1, 0, 1, -1, -1, 1, 0};
const int dy[] = {0, 1, 0, -1, 1, 1, -1, -1, 0};
bool ok(a5 &ps) {
for(int i = 0; i < 5; ++i) {
if(ps[i] == make_pair(0, 0)) return false;
}
return true;
}
a5 calc(a5 &ps, a8 &xs, a8 &ys, a15 &wa, a15 &sa) {
for(int i = 0; i < 5; ++i) {
if(ps[i] == make_pair(0, 0)) {
for(int x = 1; x <= 8; ++x) {
for(int y = 1; y <= 8; ++y){
if(xs[x-1] || ys[y-1] || wa[x + y - 2] || sa[x - y + 7]) continue;
xs[x-1] = 1;
ys[y-1] = 1;
wa[x + y - 2] = 1;
sa[x - y + 7] = 1;
ps[i] = make_pair(x, y);
auto result = calc(ps, xs, ys, wa, sa);
if(ok(result)) return result;
xs[x-1] = 0;
ys[y-1] = 0;
wa[x + y - 2] = 0;
sa[x - y + 7] = 0;
ps[i] = make_pair(0, 0);
}
}
}
}
return ps;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout << fixed << setprecision(10);
vector<string> c(8);
for(int i = 0; i < 8; ++i){
cin >> c[i];
}
a8 x = {0}, y = {0};
a15 wa = {0}, sa = {0};
for(int i = 0; i < 8; ++i){
for(int j = 0; j < 8; ++j){
if(c[i][j] == 'Q') {
++x[j];
++y[i];
++wa[i + j];
++sa[j - i + 7];
}
}
}
for(int i = 0; i < 8; ++i) {
if(x[i] >= 2 || y[i] >= 2) {
cout << "No Answer\n";
return 0;
}
}
for(int i = 0; i < 15; ++i) {
if(wa[i] >= 2 || sa[i] >= 2) {
cout << "No Answer\n";
return 0;
}
}
a5 ps;
a5 result = calc(ps, x, y, wa, sa);
if(!ok(result)) {
cout << "No Answer\n";
return 0;
}
else {
for(auto && p : result){
c[p.second - 1][p.first - 1] = 'Q';
}
}
for(int i = 0; i < 8; ++i){
cout << c[i] << "\n";
}
return 0;
}
Submission Info
Submission Time |
|
Task |
C - パズルのお手伝い |
User |
hagyu_aya |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
2736 Byte |
Status |
AC |
Exec Time |
14 ms |
Memory |
256 KB |
Judge Result
Set Name |
All |
Score / Max Score |
100 / 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 |
AC |
1 ms |
256 KB |
01_rnd_00.txt |
AC |
9 ms |
256 KB |
01_rnd_01.txt |
AC |
1 ms |
256 KB |
01_rnd_02.txt |
AC |
1 ms |
256 KB |
01_rnd_03.txt |
AC |
9 ms |
256 KB |
01_rnd_04.txt |
AC |
1 ms |
256 KB |
01_rnd_05.txt |
AC |
8 ms |
256 KB |
01_rnd_06.txt |
AC |
1 ms |
256 KB |
01_rnd_07.txt |
AC |
1 ms |
256 KB |
01_rnd_08.txt |
AC |
1 ms |
256 KB |
01_rnd_09.txt |
AC |
1 ms |
256 KB |
01_rnd_10.txt |
AC |
1 ms |
256 KB |
01_rnd_11.txt |
AC |
1 ms |
256 KB |
01_rnd_12.txt |
AC |
1 ms |
256 KB |
01_rnd_13.txt |
AC |
1 ms |
256 KB |
01_rnd_14.txt |
AC |
1 ms |
256 KB |
01_rnd_15.txt |
AC |
1 ms |
256 KB |
01_rnd_16.txt |
AC |
1 ms |
256 KB |
01_rnd_17.txt |
AC |
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 |
AC |
1 ms |
256 KB |
01_rnd_21.txt |
AC |
1 ms |
256 KB |
01_rnd_22.txt |
AC |
1 ms |
256 KB |
01_rnd_23.txt |
AC |
9 ms |
256 KB |
01_rnd_24.txt |
AC |
1 ms |
256 KB |
01_rnd_25.txt |
AC |
1 ms |
256 KB |
01_rnd_26.txt |
AC |
1 ms |
256 KB |
01_rnd_27.txt |
AC |
1 ms |
256 KB |
01_rnd_28.txt |
AC |
13 ms |
256 KB |
01_rnd_29.txt |
AC |
1 ms |
256 KB |
01_rnd_30.txt |
AC |
1 ms |
256 KB |
01_rnd_31.txt |
AC |
1 ms |
256 KB |
01_rnd_32.txt |
AC |
1 ms |
256 KB |
01_rnd_33.txt |
AC |
1 ms |
256 KB |
01_rnd_34.txt |
AC |
1 ms |
256 KB |
01_rnd_35.txt |
AC |
1 ms |
256 KB |
01_rnd_36.txt |
AC |
1 ms |
256 KB |
01_rnd_37.txt |
AC |
1 ms |
256 KB |
01_rnd_38.txt |
AC |
8 ms |
256 KB |
01_rnd_39.txt |
AC |
14 ms |
256 KB |