203172026-01-06 12:57:10hunzombiBináris Sakkcpp17Hibás válasz 19/1002.101s262144 KiB
#include <bits/stdc++.h>
using namespace std;

const long long MOD = 1e9 + 7;

int r, c, n;
vector<pair<int, int>> nodes;
vector<vector<int>> graph;

void dfs1(int node, vector<bool>& sz) {
    sz[node] = true;
    for (int next : graph[node]) {
        if (!sz[next]) {
            dfs1(next, sz);
        }
    }
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    cin >> r >> c >> n;
    graph.assign(n + 1, vector<int>(0));
    for (int i=1; i <= n; i++) {
        int u, v;
        cin >> u >> v;
        for (int j = 0; j < nodes.size(); j++) {
            pair<int, int> node = nodes[j];
            int x = node.first, y = node.second;
            if (u == x || v == y || abs(x - y) == abs(u - v) || x + y == u + v) {
                graph[i].push_back(j + 1);
                graph[j + 1].push_back(i);
            }
        }
        nodes.push_back({u, v});
    }
    long long ans = 0;
    vector<bool> sz(n + 1, false);
    for (int i=1; i <= n; i++) {
        if (!sz[i]) {
            dfs1(i, sz);
            ans++;
        }
    }

    long long res = 1;

    while (ans > 0) {
        res = (res * 2) % MOD;
        ans--;
    }

    cout << res << '\n';

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask20/11
3Elfogadva1ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva1ms316 KiB
6Elfogadva1ms316 KiB
7Elfogadva1ms388 KiB
8Hibás válasz2ms508 KiB
9Hibás válasz2ms316 KiB
10Elfogadva3ms564 KiB
11Hibás válasz4ms484 KiB
12Hibás válasz4ms316 KiB
13Hibás válasz4ms316 KiB
14Elfogadva13ms4308 KiB
15Elfogadva12ms4404 KiB
16Elfogadva12ms4308 KiB
17Elfogadva13ms4384 KiB
18Hibás válasz1ms508 KiB
subtask30/19
19Időlimit túllépés2.091s60280 KiB
20Elfogadva1.261s89264 KiB
21Elfogadva838ms12464 KiB
22Időlimit túllépés2.088s35452 KiB
23Időlimit túllépés2.086s93872 KiB
24Elfogadva319ms22836 KiB
25Időlimit túllépés2.079s24240 KiB
26Időlimit túllépés2.092s24480 KiB
27Időlimit túllépés2.096s24496 KiB
28Időlimit túllépés2.089s24516 KiB
29Időlimit túllépés2.096s224944 KiB
30Időlimit túllépés2.101s223408 KiB
31Időlimit túllépés2.088s24496 KiB
32Időlimit túllépés2.078s26032 KiB
subtask419/19
33Elfogadva3ms316 KiB
34Elfogadva4ms316 KiB
35Elfogadva1ms512 KiB
36Elfogadva2ms316 KiB
37Elfogadva1ms428 KiB
38Elfogadva1ms316 KiB
39Elfogadva4ms332 KiB
40Elfogadva4ms316 KiB
41Elfogadva4ms316 KiB
42Elfogadva4ms500 KiB
43Elfogadva12ms4404 KiB
44Elfogadva12ms4556 KiB
45Elfogadva13ms4416 KiB
46Elfogadva12ms4560 KiB
47Elfogadva4ms456 KiB
subtask50/51
48Elfogadva601ms912 KiB
49Időlimit túllépés2.099s1724 KiB
50Időlimit túllépés2.099s4024 KiB
51Időlimit túllépés2.098s4584 KiB
52Időlimit túllépés2.075s2276 KiB
53Időlimit túllépés2.073s2868 KiB
54Időlimit túllépés2.073s1716 KiB
55Elfogadva448ms1052 KiB
56Időlimit túllépés2.081s1672 KiB
57Időlimit túllépés2.088s5288 KiB
58Időlimit túllépés2.091s5484 KiB
59Időlimit túllépés2.091s5428 KiB
60Időlimit túllépés2.086s5568 KiB
61Időlimit túllépés2.075s5380 KiB
62Időlimit túllépés2.081s5444 KiB
63Futási hiba670ms262144 KiB
64Futási hiba669ms262144 KiB
65Futási hiba771ms262144 KiB
66Futási hiba657ms262144 KiB
67Időlimit túllépés2.085s5428 KiB
68Időlimit túllépés2.081s5476 KiB