// Source: https://usaco.guide/general/io
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> g , g2;
vector<int> c , l , vis , cs;
vector<bool> d;
stack<int> e;
int t = 0 , ci;
void dfs(int h , int p){
e.push(h);
l[h] = vis[h] = t++;
for(int x : g[h]){
if(x == p)continue;
if(vis[x] == -1){
dfs(x , h);
if(l[x] >= vis[h]){
d[h] = 1;
c[h] = h;
cs[h] = -1;
cs[ci]++;
g2[ci].push_back(h);
g2[h].push_back(ci);
while(e.top() != h && l[e.top()] >= vis[h]){
cs[ci]++;
if(!d[e.top()]){
c[e.top()] = ci;
}else{
g2[ci].push_back(e.top());
g2[e.top()].push_back(ci);
}
e.pop();
}
ci++;
}
l[h] = min(l[h] , l[x]);
}else{
l[h] = min(l[h] , vis[x]);
}
}
}
int dfs2(int h , int v , int p , int e){
v += cs[h];
if(e == h)return v;
for(int x : g2[h]){
if(x == p)continue;
int k = dfs2(x , v , h , e);
if(k!= -1)return k;
}
return -1;
}
int main() {
int n , m , q; cin >> n >> m >> q;
ci = n;
g.resize(n);
g2.resize(2*n);
cs.resize(2*n);
c.resize(n);
l.resize(n);
vis.resize(n , -1);
d.resize(n , 0);
for(int i = 0; i < m; i++){
int a , b; cin >> a >> b;a--;b--;
g[a].push_back(b);
g[b].push_back(a);
}
dfs(0 , -1);
for(int i = 0; i < q; i++){
int a , b; cin >> a >> b;a--;b--;
cout << dfs2(c[a] , 0 , -1, c[b])+d[a]+d[b]-2 << "\n";
}
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 1ms | 316 KiB | ||||
| 2 | Hibás válasz | 225ms | 15024 KiB | ||||
| subtask2 | 0/15 | ||||||
| 3 | Hibás válasz | 2ms | 316 KiB | ||||
| 4 | Hibás válasz | 4ms | 748 KiB | ||||
| 5 | Elfogadva | 6ms | 1332 KiB | ||||
| 6 | Hibás válasz | 14ms | 1764 KiB | ||||
| 7 | Hibás válasz | 71ms | 7480 KiB | ||||
| 8 | Hibás válasz | 155ms | 14868 KiB | ||||
| subtask3 | 0/15 | ||||||
| 9 | Elfogadva | 4ms | 564 KiB | ||||
| 10 | Elfogadva | 8ms | 564 KiB | ||||
| 11 | Elfogadva | 48ms | 1588 KiB | ||||
| 12 | Elfogadva | 174ms | 2100 KiB | ||||
| 13 | Időlimit túllépés | 1.1s | 9516 KiB | ||||
| 14 | Időlimit túllépés | 1.1s | 18772 KiB | ||||
| 15 | Időlimit túllépés | 1.087s | 31540 KiB | ||||
| subtask4 | 0/15 | ||||||
| 16 | Hibás válasz | 6ms | 568 KiB | ||||
| 17 | Hibás válasz | 8ms | 1012 KiB | ||||
| 18 | Hibás válasz | 18ms | 1844 KiB | ||||
| 19 | Hibás válasz | 86ms | 7732 KiB | ||||
| 20 | Hibás válasz | 177ms | 15056 KiB | ||||
| subtask5 | 0/15 | ||||||
| 21 | Hibás válasz | 1ms | 496 KiB | ||||
| 22 | Hibás válasz | 1ms | 316 KiB | ||||
| 23 | Elfogadva | 3ms | 748 KiB | ||||
| 24 | Hibás válasz | 2ms | 316 KiB | ||||
| 25 | Hibás válasz | 2ms | 316 KiB | ||||
| 26 | Hibás válasz | 2ms | 316 KiB | ||||
| subtask6 | 0/40 | ||||||
| 27 | Elfogadva | 1ms | 316 KiB | ||||
| 28 | Hibás válasz | 240ms | 13272 KiB | ||||
| 29 | Hibás válasz | 2ms | 316 KiB | ||||
| 30 | Hibás válasz | 4ms | 748 KiB | ||||
| 31 | Elfogadva | 6ms | 1332 KiB | ||||
| 32 | Hibás válasz | 14ms | 1764 KiB | ||||
| 33 | Hibás válasz | 71ms | 7480 KiB | ||||
| 34 | Hibás válasz | 155ms | 14868 KiB | ||||
| 35 | Elfogadva | 4ms | 564 KiB | ||||
| 36 | Elfogadva | 8ms | 564 KiB | ||||
| 37 | Elfogadva | 48ms | 1588 KiB | ||||
| 38 | Elfogadva | 174ms | 2100 KiB | ||||
| 39 | Időlimit túllépés | 1.1s | 9516 KiB | ||||
| 40 | Időlimit túllépés | 1.1s | 18772 KiB | ||||
| 41 | Időlimit túllépés | 1.087s | 31540 KiB | ||||
| 42 | Hibás válasz | 6ms | 568 KiB | ||||
| 43 | Hibás válasz | 8ms | 1012 KiB | ||||
| 44 | Hibás válasz | 18ms | 1844 KiB | ||||
| 45 | Hibás válasz | 86ms | 7732 KiB | ||||
| 46 | Hibás válasz | 177ms | 15056 KiB | ||||
| 47 | Hibás válasz | 1ms | 496 KiB | ||||
| 48 | Hibás válasz | 1ms | 316 KiB | ||||
| 49 | Elfogadva | 3ms | 748 KiB | ||||
| 50 | Hibás válasz | 2ms | 316 KiB | ||||
| 51 | Hibás válasz | 2ms | 316 KiB | ||||
| 52 | Hibás válasz | 2ms | 316 KiB | ||||
| 53 | Időlimit túllépés | 1.103s | 29660 KiB | ||||
| 54 | Hibás válasz | 6ms | 564 KiB | ||||
| 55 | Elfogadva | 114ms | 1680 KiB | ||||
| 56 | Hibás válasz | 35ms | 2012 KiB | ||||
| 57 | Hibás válasz | 326ms | 8500 KiB | ||||
| 58 | Hibás válasz | 157ms | 9220 KiB | ||||
| 59 | Időlimit túllépés | 1.09s | 32052 KiB | ||||
| 60 | Hibás válasz | 379ms | 16560 KiB | ||||
| 61 | Időlimit túllépés | 1.083s | 16304 KiB | ||||
| 62 | Időlimit túllépés | 1.085s | 15888 KiB | ||||