4099 | 2023-03-14 14:34:33 | Szin Attila | Hegyi levegő | cpp14 | Időlimit túllépés 90/100 | 3.105s | 514180 KiB |
#include <bits/stdc++.h>
using namespace std;
#define InTheNameOfGod ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);
using ll = long long;
const int maxN = 2e5 + 5;
const int MOD = 1e9 + 7;
const int INF = 1e9 + 7;
vector<int> p, s, mo;
vector<set<int> > edges;
int curr;
int root(int x) {
if(p[x] == x) return x;
if(p[x] == -1) return -1;
return (p[x] = root(p[x]));
}
void connect(int a, int b) {
a = root(a), b = root(b);
if(a == b || a == -1 || b == -1) return;
if(s[a] < s[b]) swap(a, b);
p[b] = a;
s[a] += s[b];
for(int i : edges[b]) {
if(edges[a].find(i) == edges[a].end()) edges[a].insert(i);
else {
mo[i] = curr;
edges[a].erase(i);
}
}
}
int main() {
InTheNameOfGod;
int n,m,q;
cin >> n >> m >> q;
map<int, vector<int> > ma;
for(int i = 0; i < n*m; i++) {
int x;
cin >> x;
ma[x].push_back(i);
}
p.resize(n*m+1, -1);
s.resize(n*m+1, 0);
edges.resize(n*m+1);
mo.resize(q, -1);
for(int i = 0; i < q; i++) {
int a,b,c,d;
cin >> a >> b >> c >> d;
edges[m*(a-1) + b-1].insert(i);
edges[m*(c-1) + d-1].insert(i);
}
for(auto i : ma) {
curr = i.first;
for(int x : i.second) {
p[x] = x;
s[x] = 1;
if(x % m > 0) connect(x, x-1);
if(x % m < m-1) connect(x, x+1);
if(x > m-1) connect(x, x-m);
if(x < (n-1)*m) connect(x, x+m);
}
}
for(int i : mo) cout << i << "\n";
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 3ms | 1824 KiB | ||||
2 | Elfogadva | 3ms | 2080 KiB | ||||
subtask2 | 19/19 | ||||||
3 | Elfogadva | 8ms | 4640 KiB | ||||
4 | Elfogadva | 8ms | 4596 KiB | ||||
5 | Elfogadva | 8ms | 4588 KiB | ||||
6 | Elfogadva | 8ms | 4416 KiB | ||||
7 | Elfogadva | 8ms | 4524 KiB | ||||
8 | Elfogadva | 8ms | 4820 KiB | ||||
9 | Elfogadva | 8ms | 5296 KiB | ||||
10 | Elfogadva | 8ms | 5384 KiB | ||||
subtask3 | 20/20 | ||||||
11 | Elfogadva | 3ms | 3184 KiB | ||||
12 | Elfogadva | 4ms | 4156 KiB | ||||
13 | Elfogadva | 41ms | 15108 KiB | ||||
14 | Elfogadva | 550ms | 145356 KiB | ||||
15 | Elfogadva | 1.791s | 413676 KiB | ||||
subtask4 | 20/20 | ||||||
16 | Elfogadva | 1.034s | 203128 KiB | ||||
17 | Elfogadva | 1.077s | 203288 KiB | ||||
18 | Elfogadva | 1.087s | 239952 KiB | ||||
19 | Elfogadva | 929ms | 191572 KiB | ||||
20 | Elfogadva | 913ms | 179832 KiB | ||||
subtask5 | 31/31 | ||||||
21 | Elfogadva | 1.269s | 255536 KiB | ||||
22 | Elfogadva | 944ms | 184736 KiB | ||||
23 | Elfogadva | 805ms | 147144 KiB | ||||
24 | Elfogadva | 850ms | 147564 KiB | ||||
25 | Elfogadva | 1.223s | 256068 KiB | ||||
26 | Elfogadva | 926ms | 174216 KiB | ||||
27 | Elfogadva | 1.133s | 336084 KiB | ||||
28 | Elfogadva | 1.203s | 354760 KiB | ||||
29 | Elfogadva | 1.202s | 346936 KiB | ||||
subtask6 | 0/10 | ||||||
30 | Időlimit túllépés | 3.072s | 345088 KiB | ||||
31 | Időlimit túllépés | 3.055s | 299208 KiB | ||||
32 | Időlimit túllépés | 3.065s | 242372 KiB | ||||
33 | Időlimit túllépés | 3.059s | 226680 KiB | ||||
34 | Időlimit túllépés | 3.088s | 383468 KiB | ||||
35 | Időlimit túllépés | 3.072s | 306352 KiB | ||||
36 | Elfogadva | 2.388s | 514180 KiB | ||||
37 | Időlimit túllépés | 3.105s | 480660 KiB | ||||
38 | Időlimit túllépés | 3.095s | 503044 KiB | ||||
39 | Időlimit túllépés | 3.098s | 446228 KiB |