| 20329 | 2026-01-06 14:20:27 | hunzombi | Bináris Sakk | cpp17 | Wrong answer 0/100 | 1.509s | 11480 KiB |
#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
int r, c, n;
vector<vector<int>> nodes;
bool sort1(vector<int> a, vector<int> b) {
return (a[0] <= b[0]);
}
bool sort2(vector<int> a, vector<int> b) {
return (a[1] <= b[1]);
}
bool sort3(vector<int> a, vector<int> b) {
return (a[1] - a[0] <= b[1] - b[0]);
}
bool sort4(vector<int> a, vector<int> b) {
return (a[0] + a[1] <= b[0] + b[1]);
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> r >> c >> n;
vector<bool> group(n, false);
for (int i=0; i < n; i++) {
int u, v;
cin >> u >> v;
nodes.push_back({u, v, i});
}
int ans = 0;
sort(nodes.begin(), nodes.end(), sort1);
for (int i=1; i < n; i++) {
vector<int> prev = nodes[i - 1];
vector<int> cur = nodes[i];
if (prev[0] == cur[0]) {
if (!group[prev[2]] && !group[cur[2]]) {
ans++;
}
group[prev[2]] = true;
group[cur[2]] = true;
}
}
sort(nodes.begin(), nodes.end(), sort2);
for (int i=1; i < n; i++) {
vector<int> prev = nodes[i - 1];
vector<int> cur = nodes[i];
if (prev[1] == cur[1]) {
if (!group[prev[2]] && !group[cur[2]]) {
ans++;
}
group[prev[2]] = true;
group[cur[2]] = true;
}
}
sort(nodes.begin(), nodes.end(), sort3);
for (int i=1; i < n; i++) {
vector<int> prev = nodes[i - 1];
vector<int> cur = nodes[i];
if (prev[1] - prev[0] == cur[1] - cur[0]) {
if (!group[prev[2]] && !group[cur[2]]) {
ans++;
}
group[prev[2]] = true;
group[cur[2]] = true;
}
}
sort(nodes.begin(), nodes.end(), sort4);
for (int i=1; i < n; i++) {
vector<int> prev = nodes[i - 1];
vector<int> cur = nodes[i];
if (prev[1] + prev[0] == cur[1] - cur[0]) {
if (!group[prev[2]] && !group[cur[2]]) {
ans++;
}
group[prev[2]] = true;
group[cur[2]] = true;
}
}
for (int i=0; i < n; i++) {
if (!group[i]) {
ans++;
}
group[i] = true;
}
int res = 1;
while (ans--) {
res = (res * 2) % MOD;
}
cout << res << '\n';
return 0;
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 1ms | 316 KiB | ||||
| 2 | Accepted | 1ms | 316 KiB | ||||
| subtask2 | 0/11 | ||||||
| 3 | Accepted | 1ms | 316 KiB | ||||
| 4 | Accepted | 1ms | 316 KiB | ||||
| 5 | Accepted | 1ms | 316 KiB | ||||
| 6 | Accepted | 1ms | 316 KiB | ||||
| 7 | Accepted | 1ms | 316 KiB | ||||
| 8 | Wrong answer | 3ms | 316 KiB | ||||
| 9 | Wrong answer | 3ms | 316 KiB | ||||
| 10 | Runtime error | 1ms | 316 KiB | ||||
| 11 | Wrong answer | 4ms | 500 KiB | ||||
| 12 | Wrong answer | 4ms | 316 KiB | ||||
| 13 | Wrong answer | 4ms | 480 KiB | ||||
| 14 | Runtime error | 1ms | 316 KiB | ||||
| 15 | Runtime error | 2ms | 316 KiB | ||||
| 16 | Runtime error | 3ms | 516 KiB | ||||
| 17 | Runtime error | 4ms | 680 KiB | ||||
| 18 | Accepted | 1ms | 504 KiB | ||||
| subtask3 | 0/19 | ||||||
| 19 | Runtime error | 35ms | 5560 KiB | ||||
| 20 | Runtime error | 9ms | 1648 KiB | ||||
| 21 | Runtime error | 8ms | 1648 KiB | ||||
| 22 | Runtime error | 79ms | 11156 KiB | ||||
| 23 | Runtime error | 14ms | 2796 KiB | ||||
| 24 | Runtime error | 18ms | 1272 KiB | ||||
| 25 | Runtime error | 79ms | 11476 KiB | ||||
| 26 | Runtime error | 85ms | 11392 KiB | ||||
| 27 | Runtime error | 93ms | 11476 KiB | ||||
| 28 | Runtime error | 101ms | 11476 KiB | ||||
| 29 | Runtime error | 82ms | 11404 KiB | ||||
| 30 | Runtime error | 107ms | 11480 KiB | ||||
| 31 | Runtime error | 72ms | 11476 KiB | ||||
| 32 | Runtime error | 81ms | 11396 KiB | ||||
| subtask4 | 0/19 | ||||||
| 33 | Accepted | 4ms | 316 KiB | ||||
| 34 | Accepted | 4ms | 316 KiB | ||||
| 35 | Accepted | 2ms | 316 KiB | ||||
| 36 | Accepted | 2ms | 512 KiB | ||||
| 37 | Accepted | 2ms | 500 KiB | ||||
| 38 | Accepted | 2ms | 316 KiB | ||||
| 39 | Accepted | 4ms | 564 KiB | ||||
| 40 | Accepted | 4ms | 316 KiB | ||||
| 41 | Accepted | 4ms | 316 KiB | ||||
| 42 | Accepted | 4ms | 432 KiB | ||||
| 43 | Runtime error | 1ms | 316 KiB | ||||
| 44 | Runtime error | 2ms | 316 KiB | ||||
| 45 | Runtime error | 3ms | 316 KiB | ||||
| 46 | Runtime error | 3ms | 316 KiB | ||||
| 47 | Accepted | 4ms | 316 KiB | ||||
| subtask5 | 0/51 | ||||||
| 48 | Wrong answer | 81ms | 1136 KiB | ||||
| 49 | Wrong answer | 228ms | 2980 KiB | ||||
| 50 | Wrong answer | 908ms | 10460 KiB | ||||
| 51 | Wrong answer | 1.148s | 10912 KiB | ||||
| 52 | Wrong answer | 388ms | 3828 KiB | ||||
| 53 | Wrong answer | 555ms | 5348 KiB | ||||
| 54 | Accepted | 222ms | 2796 KiB | ||||
| 55 | Accepted | 71ms | 1136 KiB | ||||
| 56 | Wrong answer | 217ms | 2796 KiB | ||||
| 57 | Wrong answer | 1.389s | 10964 KiB | ||||
| 58 | Wrong answer | 1.401s | 11220 KiB | ||||
| 59 | Wrong answer | 1.485s | 11220 KiB | ||||
| 60 | Wrong answer | 1.509s | 11220 KiB | ||||
| 61 | Wrong answer | 1.388s | 11220 KiB | ||||
| 62 | Wrong answer | 1.401s | 11220 KiB | ||||
| 63 | Runtime error | 82ms | 11476 KiB | ||||
| 64 | Runtime error | 381ms | 11476 KiB | ||||
| 65 | Runtime error | 691ms | 11424 KiB | ||||
| 66 | Runtime error | 908ms | 11476 KiB | ||||
| 67 | Accepted | 1.383s | 11220 KiB | ||||
| 68 | Accepted | 1.404s | 11220 KiB | ||||