Submission #433256


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;


int d[5][5];
int used[25];

int dfs(int x, int y) {
    if (y == 5) return 1;
    if (x == 5) return dfs(0, y+1);
    if (d[y][x] != -1) {
        bool f = true;
        if (2 <= x) {
            if (d[y][x-2] < d[y][x-1] && d[y][x-1] < d[y][x]) {
                f = false;
            }
            if (d[y][x-2] > d[y][x-1] && d[y][x-1] > d[y][x]) {
                f = false;
            }
        }
        if (2 <= y) {
            if (d[y-2][x] < d[y-1][x] && d[y-1][x] < d[y][x]) {
                f = false;
            }
            if (d[y-2][x] > d[y-1][x] && d[y-1][x] > d[y][x]) {
                f = false;
            }
        }
        if (!f) return 0;
        return dfs(x+1, y);
    }
    int sm = 0;
    for (int i = 0; i < 25; i++) {
        if (used[i]) continue;
        d[y][x] = i;
        used[i] = true;
        bool f = true;
        if (2 <= x) {
            if (d[y][x-2] < d[y][x-1] && d[y][x-1] < d[y][x]) {
                f = false;
            }
            if (d[y][x-2] > d[y][x-1] && d[y][x-1] > d[y][x]) {
                f = false;
            }
        }
        if (2 <= y) {
            if (d[y-2][x] < d[y-1][x] && d[y-1][x] < d[y][x]) {
                f = false;
            }
            if (d[y-2][x] > d[y-1][x] && d[y-1][x] > d[y][x]) {
                f = false;
            }
        }
        if (f) {
            sm += dfs(x+1, y);
        }
        d[y][x] = -1;
        used[i] = false;
    }
    return sm;
}

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

Submission Info

Submission Time
Task D - 25個の整数
User yosupo
Language C++11 (GCC 4.9.2)
Score 30
Code Size 2212 Byte
Status TLE
Exec Time 5036 ms
Memory 1072 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 0 / 70
Status
AC × 4
AC × 19
AC × 20
TLE × 9
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 29 ms 940 KB
sample-02.txt AC 33 ms 940 KB
sample-03.txt AC 27 ms 912 KB
sample-04.txt AC 29 ms 916 KB
test-1-01.txt AC 28 ms 1036 KB
test-1-02.txt AC 27 ms 1044 KB
test-1-03.txt AC 26 ms 1040 KB
test-1-04.txt AC 27 ms 1044 KB
test-1-05.txt AC 28 ms 920 KB
test-1-06.txt AC 28 ms 1040 KB
test-1-07.txt AC 27 ms 1000 KB
test-1-08.txt AC 27 ms 1044 KB
test-1-09.txt AC 27 ms 916 KB
test-1-10.txt AC 27 ms 1040 KB
test-1-11.txt AC 27 ms 1036 KB
test-1-12.txt AC 27 ms 916 KB
test-1-13.txt AC 27 ms 936 KB
test-1-14.txt AC 28 ms 1044 KB
test-1-15.txt AC 26 ms 1036 KB
test-2-01.txt TLE 5036 ms 1072 KB
test-2-02.txt TLE 5035 ms 996 KB
test-2-03.txt AC 419 ms 1044 KB
test-2-04.txt TLE 5034 ms 1068 KB
test-2-05.txt TLE 5034 ms 1068 KB
test-2-06.txt TLE 5035 ms 996 KB
test-2-07.txt TLE 5034 ms 1068 KB
test-2-08.txt TLE 5034 ms 1072 KB
test-2-09.txt TLE 5035 ms 1004 KB
test-2-10.txt TLE 5034 ms 1064 KB