Submission #2246859


Source Code Expand

#include <cmath>
#include <iostream>
#include <vector>
#include <queue>
#include <map>
#include <set>
#include <algorithm>
#include <utility>
#include <iomanip>

#define int long long int
#define rep(i, n) for(int i = 0; i < (n); ++i)

using namespace std;

typedef pair<int, int> P;

const int INF = 1e15;
const int MOD = 1e9+7;

void search(vector<P> q, int d){
    if(d == 5){
        vector<vector<char>> ans(8, vector<char>(8, '.'));
        for(int i = 0; i < 8; i++){
            ans[q[i].first][q[i].second] = 'Q';
        }
        rep(i, 8){
            rep(j, 8){
                cout << ans[i][j];
            }
            cout << endl;
        }
        exit(0);
    }

    for(int i = 0; i < 8; i++){
        for(int j = 0; j < 8; j++){
            bool f = true;
            for(int k = 0; k < (int)q.size(); k++){
                int sx = abs(q[k].first - i);
                int sy = abs(q[k].second - j);
                if(sx == sy || sx == 0 || sy == 0){
                    f = false;
                }
            }
            if(f){
                q.push_back(make_pair(i, j));
                search(q, d+1);
                q.pop_back();
            }
        }
    }
}

signed main(){
    vector<P> q;
    rep(i, 8){
        rep(j, 8){
            char c;
            cin >> c;
            if(c == 'Q'){
                q.push_back(make_pair(i, j));
            }
        }
    }

    for(int i = 0; i < (int)q.size(); i++){
        for(int j = 0; j < (int)q.size(); j++){
            if(i == j){
                continue;
            }
            int sx = abs(q[i].first - q[j].first);
            int sy = abs(q[i].second - q[j].second);
            if(sx == sy){
                cout << "No Answer" << endl;
                return 0;
            }
        }
    }

    search(q, 0);
    cout << "No Answer" << endl;
    return 0;
}

Submission Info

Submission Time
Task C - パズルのお手伝い
User amanuko
Language C++14 (Clang 3.8.0)
Score 0
Code Size 1949 Byte
Status WA
Exec Time 4 ms
Memory 256 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 31
WA × 11
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 2 ms 256 KB
01_rnd_01.txt AC 1 ms 256 KB
01_rnd_02.txt WA 1 ms 256 KB
01_rnd_03.txt AC 2 ms 256 KB
01_rnd_04.txt WA 1 ms 256 KB
01_rnd_05.txt AC 2 ms 256 KB
01_rnd_06.txt WA 1 ms 256 KB
01_rnd_07.txt WA 2 ms 256 KB
01_rnd_08.txt WA 1 ms 256 KB
01_rnd_09.txt WA 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 WA 2 ms 256 KB
01_rnd_15.txt AC 4 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 WA 1 ms 256 KB
01_rnd_23.txt AC 2 ms 256 KB
01_rnd_24.txt WA 1 ms 256 KB
01_rnd_25.txt AC 2 ms 256 KB
01_rnd_26.txt WA 2 ms 256 KB
01_rnd_27.txt AC 1 ms 256 KB
01_rnd_28.txt AC 3 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 4 ms 256 KB
01_rnd_34.txt AC 1 ms 256 KB
01_rnd_35.txt WA 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 2 ms 256 KB
01_rnd_39.txt AC 3 ms 256 KB