Submission #2246704


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, vector<bool> h, vector<bool> w, 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++){
        if(h[i]){
            continue;
        }

        for(int j = 0; j < 8; j++){
            if(w[j]){
                continue;
            }

            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){
                    f = false;
                }
            }
            if(f){
                q.push_back(make_pair(i, j));
                h[i] = true;
                w[j] = true;
                search(q, h, w, d+1);
                q.pop_back();
                h[i] = false;
                w[j] = false;
            }
        }
    }
}

signed main(){
    vector<bool> h(8, false), w(8, false);

    vector<p> q;
    rep(i, 8){
        rep(j, 8){
            char c;
            cin >> c;
            if(c == 'q'){
                h[i] = true;
                w[j] = true;
                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, h, w, 0);
    return 0;
}

Submission Info

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

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
RE × 42
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 RE 96 ms 256 KB
00_sample2.txt RE 96 ms 256 KB
01_rnd_00.txt RE 96 ms 256 KB
01_rnd_01.txt RE 97 ms 256 KB
01_rnd_02.txt RE 97 ms 256 KB
01_rnd_03.txt RE 98 ms 256 KB
01_rnd_04.txt RE 97 ms 256 KB
01_rnd_05.txt RE 97 ms 256 KB
01_rnd_06.txt RE 96 ms 256 KB
01_rnd_07.txt RE 97 ms 256 KB
01_rnd_08.txt RE 97 ms 256 KB
01_rnd_09.txt RE 97 ms 256 KB
01_rnd_10.txt RE 97 ms 256 KB
01_rnd_11.txt RE 96 ms 256 KB
01_rnd_12.txt RE 96 ms 256 KB
01_rnd_13.txt RE 96 ms 256 KB
01_rnd_14.txt RE 96 ms 256 KB
01_rnd_15.txt RE 97 ms 256 KB
01_rnd_16.txt RE 96 ms 256 KB
01_rnd_17.txt RE 96 ms 256 KB
01_rnd_18.txt RE 97 ms 256 KB
01_rnd_19.txt RE 96 ms 256 KB
01_rnd_20.txt RE 96 ms 256 KB
01_rnd_21.txt RE 96 ms 256 KB
01_rnd_22.txt RE 97 ms 256 KB
01_rnd_23.txt RE 96 ms 256 KB
01_rnd_24.txt RE 96 ms 256 KB
01_rnd_25.txt RE 96 ms 256 KB
01_rnd_26.txt RE 97 ms 256 KB
01_rnd_27.txt RE 96 ms 256 KB
01_rnd_28.txt RE 96 ms 256 KB
01_rnd_29.txt RE 98 ms 256 KB
01_rnd_30.txt RE 99 ms 256 KB
01_rnd_31.txt RE 96 ms 256 KB
01_rnd_32.txt RE 96 ms 256 KB
01_rnd_33.txt RE 97 ms 256 KB
01_rnd_34.txt RE 96 ms 256 KB
01_rnd_35.txt RE 96 ms 256 KB
01_rnd_36.txt RE 96 ms 256 KB
01_rnd_37.txt RE 96 ms 256 KB
01_rnd_38.txt RE 96 ms 256 KB
01_rnd_39.txt RE 96 ms 256 KB