답안 #594181

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
594181 2022-07-12T07:53:25 Z piOOE Sandcastle 2 (JOI22_ho_t5) C++17
10 / 100
5000 ms 3492 KB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, m;
    cin >> n >> m;
    bool swapped = false;
    if (n < m) {
        swapped = true;
        swap(n, m);
    }
    vector<vector<int>> a(n, vector<int>(m));
    for (int i = 0; i < (swapped ? m : n); ++i) {
        for (int j = 0; j < (swapped ? n : m); ++j) {
            if (!swapped) {
                cin >> a[i][j];
            } else {
                cin >> a[j][i];
            }
        }
    }
    auto adj = [](int x1, int y1, int x2, int y2) {
        return abs(x1 - x2) + abs(y1 - y2) < 2;
    };
    int ans = 0;
    for (int x1 = 0; x1 < n; ++x1) {
        for (int y1 = 0; y1 < m; ++y1) {
            for (int x2 = x1; x2 < n; ++x2) {
                set<array<int, 3>> st;
                int cnt = 0;
                for (int y2 = y1; y2 < m; ++y2) {
                    for (int x = x1; x <= x2; ++x) {
                        auto it = st.lower_bound({a[x][y2], -1, -1});
                        if (it != st.end()) {
                            if (it != st.begin()) {
                                cnt -= !adj((*it)[1], (*it)[2], (*prev(it))[1], (*prev(it))[2]);
                            }
                            cnt += !adj(x, y2, (*it)[1], (*it)[2]);
                        }
                        if (it != st.begin()) {
                            it = prev(it);
                            cnt += !adj(x, y2, (*it)[1], (*it)[2]);
                        }
                        st.insert({a[x][y2], x, y2});
                    }
                    ans += cnt == 0;
                }
            }
        }
    }
    cout << ans;
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Execution timed out 5058 ms 3492 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 212 KB Output is correct
2 Correct 3 ms 212 KB Output is correct
3 Correct 2 ms 212 KB Output is correct
4 Correct 2 ms 212 KB Output is correct
5 Correct 2 ms 212 KB Output is correct
6 Correct 2 ms 328 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 212 KB Output is correct
2 Correct 3 ms 212 KB Output is correct
3 Correct 2 ms 212 KB Output is correct
4 Correct 2 ms 212 KB Output is correct
5 Correct 2 ms 212 KB Output is correct
6 Correct 2 ms 328 KB Output is correct
7 Execution timed out 5021 ms 572 KB Time limit exceeded
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 212 KB Output is correct
2 Correct 3 ms 212 KB Output is correct
3 Correct 2 ms 212 KB Output is correct
4 Correct 2 ms 212 KB Output is correct
5 Correct 2 ms 212 KB Output is correct
6 Correct 2 ms 328 KB Output is correct
7 Execution timed out 5021 ms 572 KB Time limit exceeded
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 212 KB Output is correct
2 Correct 3 ms 212 KB Output is correct
3 Correct 2 ms 212 KB Output is correct
4 Correct 2 ms 212 KB Output is correct
5 Correct 2 ms 212 KB Output is correct
6 Correct 2 ms 328 KB Output is correct
7 Execution timed out 5021 ms 572 KB Time limit exceeded
8 Halted 0 ms 0 KB -