Submission #433951


Source Code Expand

#include <iostream>
#include <cstdio>
#include <cassert>
#include <cstring>
#include <vector>
#include <valarray>
#include <array>
#include <queue>
#include <set>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <algorithm>
#include <cmath>
#include <complex>
#include <random>

using namespace std;
typedef long long ll;
typedef unsigned long long ull;


bool used[5][5];
int xp[25], yp[25];

int dfs(int p) {
    if (p == 25) {
        return 1;
    }
    if (xp[p] != -1) {
        int i = yp[p], j = xp[p];
        if (used[i][j]) return 0;
        if (1 <= i && i <= 3) {
            if (used[i-1][j] && !used[i+1][j]) {
                return 0;
            }
            if (!used[i-1][j] && used[i+1][j]) {
                return 0;
            }
        }
        if (1 <= j && j <= 3) {
            if (used[i][j-1] && !used[i][j+1]) {
                return 0;
            }
            if (!used[i][j-1] && used[i][j+1]) {
                return 0;
            }
        }
        used[i][j] = true;
        int sm = dfs(p+1);
        used[i][j] = false;
        return sm;
    }
    int sm = 0;
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5; j++) {
            if (used[i][j]) continue;
            if (1 <= i && i <= 3) {
                if (used[i-1][j] && !used[i+1][j]) {
                    continue;
                }
                if (!used[i-1][j] && used[i+1][j]) {
                    continue;
                }
            }
            if (1 <= j && j <= 3) {
                if (used[i][j-1] && !used[i][j+1]) {
                    continue;
                }
                if (!used[i][j-1] && used[i][j+1]) {
                    continue;
                }
            }
            used[i][j] = true;
            sm += dfs(p+1);
            used[i][j] = false;
        }
    }
    return sm;
}

int main() {
    memset(xp, -1, sizeof(xp));
    memset(yp, -1, sizeof(yp));
    for (int i = 0; i < 5; i++) {
        for (int j = 0; j < 5; j++) {
            int d;
            cin >> d; d--;
            if (d != -1) {
                xp[d] = j;
                yp[d] = i;
            }
        }
    }
    cout << dfs(0) << endl;
    return 0;
}

Submission Info

Submission Time
Task D - 25個の整数
User yosupo
Language C++11 (GCC 4.9.2)
Score 0
Code Size 2317 Byte
Status TLE
Exec Time 5035 ms
Memory 928 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 0 / 30 0 / 70
Status
AC × 3
TLE × 1
AC × 18
TLE × 1
AC × 19
TLE × 10
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt
Subtask1 sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, test-1-01.txt, test-1-02.txt, test-1-03.txt, test-1-04.txt, test-1-05.txt, test-1-06.txt, test-1-07.txt, test-1-08.txt, test-1-09.txt, test-1-10.txt, test-1-11.txt, test-1-12.txt, test-1-13.txt, test-1-14.txt, test-1-15.txt
Subtask2 sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt, test-1-01.txt, test-1-02.txt, test-1-03.txt, test-1-04.txt, test-1-05.txt, test-1-06.txt, test-1-07.txt, test-1-08.txt, test-1-09.txt, test-1-10.txt, test-1-11.txt, test-1-12.txt, test-1-13.txt, test-1-14.txt, test-1-15.txt, test-2-01.txt, test-2-02.txt, test-2-03.txt, test-2-04.txt, test-2-05.txt, test-2-06.txt, test-2-07.txt, test-2-08.txt, test-2-09.txt, test-2-10.txt
Case Name Status Exec Time Memory
sample-01.txt AC 23 ms 800 KB
sample-02.txt TLE 5033 ms 880 KB
sample-03.txt AC 24 ms 928 KB
sample-04.txt AC 22 ms 924 KB
test-1-01.txt AC 22 ms 916 KB
test-1-02.txt AC 22 ms 808 KB
test-1-03.txt AC 23 ms 796 KB
test-1-04.txt AC 24 ms 800 KB
test-1-05.txt AC 24 ms 736 KB
test-1-06.txt AC 30 ms 796 KB
test-1-07.txt AC 22 ms 804 KB
test-1-08.txt AC 22 ms 800 KB
test-1-09.txt AC 22 ms 924 KB
test-1-10.txt AC 22 ms 800 KB
test-1-11.txt AC 22 ms 924 KB
test-1-12.txt AC 28 ms 800 KB
test-1-13.txt AC 22 ms 800 KB
test-1-14.txt AC 25 ms 928 KB
test-1-15.txt AC 39 ms 804 KB
test-2-01.txt TLE 5031 ms 928 KB
test-2-02.txt TLE 5033 ms 804 KB
test-2-03.txt AC 1312 ms 752 KB
test-2-04.txt TLE 5032 ms 808 KB
test-2-05.txt TLE 5032 ms 800 KB
test-2-06.txt TLE 5035 ms 808 KB
test-2-07.txt TLE 5031 ms 796 KB
test-2-08.txt TLE 5033 ms 860 KB
test-2-09.txt TLE 5033 ms 800 KB
test-2-10.txt TLE 5032 ms 804 KB