5561 | 2023-07-27 11:19:33 | zsombor | Labirintus | cpp17 | Elfogadva 100/100 | 507ms | 74028 KiB |
#include <iostream>
#include <vector>
#include <queue>
#include "labirintus.h"
using namespace std;
int r,c;
vector <vector <int>> l;
vector <int> p(11e5,0);
vector <int> sz(11e5,1);
queue <int>q;
vector <int> P(11e5,0);
vector <int> SZ(11e5,1);
int holvan(int a){
return (a==p[a]?a:holvan(p[a]));
}
void unio(int a,int b){
a=holvan(a);
b=holvan(b);
if (a==b) return;
if (sz[a]>sz[b]) swap(a,b);
p[a]=b;
sz[b]+=sz[a];
q.push(a);
q.push(b);
}
void betesz(int I,int J){
l[I][J]=1;
for (int i=I-1;i<=I+1;i++){
for (int j=J-1;j<=J+1;j++){
if (i==r || j==-1) {unio(I*c+J,r*c);continue;}
if (i==-1 || j==c) {unio(I*c+J,r*c+1);continue;}
if (l[i][j]) unio(I*c+J,i*c+j);
}
}
}
void init_labyrinth(int R, int C, vector <vector <int>> L){
r=R;c=C;l=L;
for (int i=0;i<r*c+2;i++) p[i]=i;
for (int i=0;i<r;i++){
for (int j=0;j<c;j++){
if (l[i][j]) betesz(i,j);
}
}
P=p;SZ=sz;
}
bool can_escape(int N, vector <int> U, vector <int> V){
for (int i=0;i<N;i++) betesz(U[i],V[i]);
bool ret=(holvan(r*c)!=holvan(r*c+1));
for (int i=0;i<N;i++) l[U[i]][V[i]]=0;
while(q.size()){
p[q.front()]=P[q.front()];
sz[q.front()]=SZ[q.front()];
q.pop();
}
return ret;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 19ms | 36064 KiB | ||||
2 | Elfogadva | 193ms | 68024 KiB | ||||
subtask2 | 15/15 | ||||||
3 | Elfogadva | 50ms | 37988 KiB | ||||
4 | Elfogadva | 25ms | 38288 KiB | ||||
5 | Elfogadva | 135ms | 37424 KiB | ||||
6 | Elfogadva | 137ms | 37060 KiB | ||||
7 | Elfogadva | 97ms | 38764 KiB | ||||
8 | Elfogadva | 101ms | 38976 KiB | ||||
subtask3 | 18/18 | ||||||
9 | Elfogadva | 231ms | 38664 KiB | ||||
10 | Elfogadva | 207ms | 38140 KiB | ||||
11 | Elfogadva | 505ms | 70756 KiB | ||||
12 | Elfogadva | 430ms | 70792 KiB | ||||
13 | Elfogadva | 481ms | 70796 KiB | ||||
14 | Elfogadva | 507ms | 72588 KiB | ||||
subtask4 | 28/28 | ||||||
15 | Elfogadva | 282ms | 71136 KiB | ||||
16 | Elfogadva | 280ms | 71264 KiB | ||||
17 | Elfogadva | 286ms | 71472 KiB | ||||
18 | Elfogadva | 166ms | 71536 KiB | ||||
19 | Elfogadva | 266ms | 72704 KiB | ||||
20 | Elfogadva | 136ms | 71532 KiB | ||||
21 | Elfogadva | 131ms | 71536 KiB | ||||
22 | Elfogadva | 270ms | 72964 KiB | ||||
23 | Elfogadva | 268ms | 72964 KiB | ||||
subtask5 | 39/39 | ||||||
24 | Elfogadva | 52ms | 41256 KiB | ||||
25 | Elfogadva | 32ms | 41012 KiB | ||||
26 | Elfogadva | 135ms | 41636 KiB | ||||
27 | Elfogadva | 137ms | 41140 KiB | ||||
28 | Elfogadva | 134ms | 41832 KiB | ||||
29 | Elfogadva | 134ms | 41676 KiB | ||||
30 | Elfogadva | 448ms | 72996 KiB | ||||
31 | Elfogadva | 460ms | 72996 KiB | ||||
32 | Elfogadva | 349ms | 70008 KiB | ||||
33 | Elfogadva | 432ms | 73848 KiB | ||||
34 | Elfogadva | 256ms | 74028 KiB | ||||
35 | Elfogadva | 248ms | 73912 KiB | ||||
36 | Elfogadva | 321ms | 72384 KiB | ||||
37 | Elfogadva | 319ms | 72340 KiB | ||||
38 | Elfogadva | 360ms | 72464 KiB | ||||
39 | Elfogadva | 321ms | 72340 KiB |