4109 | 2023-03-14 17:31:52 | Szin Attila | Hegyi levegő | cpp14 | Időlimit túllépés 90/100 | 3.095s | 517560 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;
vector<pair<int, int> > ma;
for(int i = 0; i < n*m; i++) {
int x;
cin >> x;
ma.push_back({x, i});
}
p.resize(n*m+1, -1);
s.resize(n*m+1, 0);
edges.resize(n*m+1);
mo.resize(q, -1);
sort(ma.begin(), ma.end());
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;
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 | 2200 KiB | ||||
subtask2 | 19/19 | ||||||
3 | Elfogadva | 6ms | 3568 KiB | ||||
4 | Elfogadva | 6ms | 3688 KiB | ||||
5 | Elfogadva | 6ms | 3528 KiB | ||||
6 | Elfogadva | 6ms | 3504 KiB | ||||
7 | Elfogadva | 6ms | 3672 KiB | ||||
8 | Elfogadva | 6ms | 3844 KiB | ||||
9 | Elfogadva | 6ms | 4320 KiB | ||||
10 | Elfogadva | 7ms | 4568 KiB | ||||
subtask3 | 20/20 | ||||||
11 | Elfogadva | 3ms | 3356 KiB | ||||
12 | Elfogadva | 4ms | 4452 KiB | ||||
13 | Elfogadva | 37ms | 13640 KiB | ||||
14 | Elfogadva | 533ms | 125584 KiB | ||||
15 | Elfogadva | 1.44s | 312444 KiB | ||||
subtask4 | 20/20 | ||||||
16 | Elfogadva | 1.268s | 205700 KiB | ||||
17 | Elfogadva | 1.281s | 205724 KiB | ||||
18 | Elfogadva | 1.552s | 242248 KiB | ||||
19 | Elfogadva | 1.284s | 193980 KiB | ||||
20 | Elfogadva | 1.259s | 182404 KiB | ||||
subtask5 | 31/31 | ||||||
21 | Elfogadva | 1.317s | 235280 KiB | ||||
22 | Elfogadva | 975ms | 164788 KiB | ||||
23 | Elfogadva | 940ms | 126916 KiB | ||||
24 | Elfogadva | 940ms | 126916 KiB | ||||
25 | Elfogadva | 1.105s | 235396 KiB | ||||
26 | Elfogadva | 904ms | 174680 KiB | ||||
27 | Elfogadva | 1.358s | 337064 KiB | ||||
28 | Elfogadva | 1.493s | 355880 KiB | ||||
29 | Elfogadva | 1.338s | 337444 KiB | ||||
subtask6 | 0/10 | ||||||
30 | Időlimit túllépés | 3.078s | 343616 KiB | ||||
31 | Időlimit túllépés | 3.061s | 248424 KiB | ||||
32 | Időlimit túllépés | 3.055s | 191532 KiB | ||||
33 | Elfogadva | 2.825s | 347820 KiB | ||||
34 | Időlimit túllépés | 3.065s | 343548 KiB | ||||
35 | Időlimit túllépés | 3.069s | 321644 KiB | ||||
36 | Elfogadva | 2.772s | 517560 KiB | ||||
37 | Időlimit túllépés | 3.073s | 435008 KiB | ||||
38 | Időlimit túllépés | 3.095s | 505416 KiB | ||||
39 | Időlimit túllépés | 3.088s | 457832 KiB |