#include<iostream>
#include<vector>
#include<stack>
#include<array>
using namespace std;
vector<vector<int>> g , g2;
vector<int> e , l , ti , z;
stack<int> s;
vector<bool> cp , vis , h;
vector<vector<int>> b;
int t = 0 , v = 0;
void dfs(int p , int q){
ti[p] = t++;
l[p] = ti[p];
s.push(p);
int c = 0;
for(int x : g[p]){
if(x == q)continue;
if(l[x] == -1){
c++;
dfs(x , p);
if(ti[p] <= l[x]){
b.push_back({});
b.back().push_back(p);
g2.push_back({});
if(p != 0)cp[p] = true;
e[p] = b.size()-1;
while(s.top() != p){
b.back().push_back(s.top());
e[s.top()] = b.size()-1;
if(s.top() == x){
s.pop();
break;
}
s.pop();
}
z.push_back(b.back().size()-2);
}
l[p] = min(l[p] , l[x]);
}else{
l[p] = min(l[p] , ti[x]);
}
}
if(p == 0 && c > 2)cp[0] = true;
}
vector<array<int , 22>> bl;
vector<int> o , f;
void blH(int p , int q){
//cout << p << " " << q << endl;
bl[p][0] = q;
for(int i = 1 ; i < 22; i++){
if(bl[p][i-1] != -1)bl[p][i] = bl[bl[p][i-1]][i-1];else bl[p][i] = -1;
}
for(int x : g2[p]){
if(x == q)continue;
o[x] = o[p]+z[x];
f[x] = f[p]+1;
blH(x , p);
}
}
void qu(int a , int b){
int w = cp[a-1] + cp[b-1];
a = e[a-1];
b = e[b-1];
int ans = o[a]+o[b];
if(f[a] < f[b])swap(a , b);
int r = f[a]-f[b];
for(int i = 0; i < 22; i++){
if(r&(1<<i)){
a = bl[a][i];
}
}
if(a != b){
for(int i = 21; i >= 0; i++){
if(bl[a][i] != bl[b][i]){
a = bl[a][i];
b = bl[b][i];
}
}
a = bl[a][0];
}
cout << (ans-2*o[a]+z[a]-w) << "\n";
}
int main(){
cin.tie(0);
ios_base::sync_with_stdio(0);
int n , m , k;cin >> n >> m >> k;
g.resize(n);
e.resize(n , -1);
ti.resize(n);
l.resize(n , -1);
cp.resize(n , false);
vis.resize(n , false);
h.resize(n , false);
for(int i = 0; i < m; i++){
int a , b;cin >> a >> b;
g[a-1].push_back(b-1);
g[b-1].push_back(a-1);
}
dfs(0 , -1);
int u = b.size();
for(int i = 0 ; i < n; i++){
if(cp[i]){
e[i] = u++;
g2.push_back({});
z.push_back(1);
}
}
for(int i = 0; i < b.size(); i++){
for(int x:b[i]){
if(cp[x]){
g2[i].push_back(e[x]);
g2[e[x]].push_back(i);
}
}
}
bl.resize(u);
o.resize(u , 0);
f.resize(u , 0);
blH(0 , -1);
for(int i = 0; i < k; i++){
int a , b;cin >> a >> b;
qu(a , b);
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 3ms | 360 KiB | ||||
2 | Időlimit túllépés | 1.097s | 8708 KiB | ||||
subtask2 | 0/15 | ||||||
3 | Elfogadva | 3ms | 748 KiB | ||||
4 | Elfogadva | 4ms | 884 KiB | ||||
5 | Időlimit túllépés | 1.088s | 2464 KiB | ||||
6 | Elfogadva | 8ms | 1508 KiB | ||||
7 | Elfogadva | 35ms | 4584 KiB | ||||
8 | Elfogadva | 76ms | 8972 KiB | ||||
subtask3 | 0/15 | ||||||
9 | Időlimit túllépés | 1.09s | 772 KiB | ||||
10 | Időlimit túllépés | 1.093s | 1308 KiB | ||||
11 | Időlimit túllépés | 1.088s | 2584 KiB | ||||
12 | Időlimit túllépés | 1.09s | 3948 KiB | ||||
13 | Időlimit túllépés | 1.097s | 18008 KiB | ||||
14 | Időlimit túllépés | 1.098s | 35656 KiB | ||||
15 | Időlimit túllépés | 1.1s | 50236 KiB | ||||
subtask4 | 0/15 | ||||||
16 | Időlimit túllépés | 1.097s | 624 KiB | ||||
17 | Időlimit túllépés | 1.095s | 764 KiB | ||||
18 | Időlimit túllépés | 1.093s | 1380 KiB | ||||
19 | Időlimit túllépés | 1.097s | 4580 KiB | ||||
20 | Időlimit túllépés | 1.097s | 8800 KiB | ||||
subtask5 | 0/15 | ||||||
21 | Elfogadva | 3ms | 632 KiB | ||||
22 | Elfogadva | 3ms | 412 KiB | ||||
23 | Időlimit túllépés | 1.088s | 1032 KiB | ||||
24 | Időlimit túllépés | 1.092s | 508 KiB | ||||
25 | Időlimit túllépés | 1.095s | 504 KiB | ||||
26 | Időlimit túllépés | 1.097s | 484 KiB | ||||
subtask6 | 0/40 | ||||||
27 | Elfogadva | 3ms | 356 KiB | ||||
28 | Időlimit túllépés | 1.09s | 8732 KiB | ||||
29 | Elfogadva | 3ms | 748 KiB | ||||
30 | Elfogadva | 4ms | 884 KiB | ||||
31 | Időlimit túllépés | 1.088s | 2464 KiB | ||||
32 | Elfogadva | 8ms | 1508 KiB | ||||
33 | Elfogadva | 35ms | 4584 KiB | ||||
34 | Elfogadva | 76ms | 8972 KiB | ||||
35 | Időlimit túllépés | 1.09s | 772 KiB | ||||
36 | Időlimit túllépés | 1.093s | 1308 KiB | ||||
37 | Időlimit túllépés | 1.088s | 2584 KiB | ||||
38 | Időlimit túllépés | 1.09s | 3948 KiB | ||||
39 | Időlimit túllépés | 1.097s | 18008 KiB | ||||
40 | Időlimit túllépés | 1.098s | 35656 KiB | ||||
41 | Időlimit túllépés | 1.1s | 50236 KiB | ||||
42 | Időlimit túllépés | 1.097s | 624 KiB | ||||
43 | Időlimit túllépés | 1.095s | 764 KiB | ||||
44 | Időlimit túllépés | 1.093s | 1380 KiB | ||||
45 | Időlimit túllépés | 1.097s | 4580 KiB | ||||
46 | Időlimit túllépés | 1.097s | 8800 KiB | ||||
47 | Elfogadva | 3ms | 632 KiB | ||||
48 | Elfogadva | 3ms | 412 KiB | ||||
49 | Időlimit túllépés | 1.088s | 1032 KiB | ||||
50 | Időlimit túllépés | 1.092s | 508 KiB | ||||
51 | Időlimit túllépés | 1.095s | 504 KiB | ||||
52 | Időlimit túllépés | 1.097s | 484 KiB | ||||
53 | Időlimit túllépés | 1.09s | 52184 KiB | ||||
54 | Időlimit túllépés | 1.088s | 896 KiB | ||||
55 | Időlimit túllépés | 1.098s | 2536 KiB | ||||
56 | Időlimit túllépés | 1.095s | 1432 KiB | ||||
57 | Időlimit túllépés | 1.093s | 4624 KiB | ||||
58 | Időlimit túllépés | 1.092s | 5604 KiB | ||||
59 | Időlimit túllépés | 1.095s | 54100 KiB | ||||
60 | Elfogadva | 108ms | 9200 KiB | ||||
61 | Időlimit túllépés | 1.095s | 9180 KiB | ||||
62 | Időlimit túllépés | 1.095s | 9624 KiB |