#include <bits/stdc++.h>
using namespace std;
const int mxN=1e5;
int n, m, k, a[mxN], b[mxN], d[mxN], s[mxN], p[mxN], r[mxN], dt=1, tin[mxN], low[mxN];
bool bg[mxN];
vector<int> adj1[mxN], adj2[mxN];
int find(int x) {
return x==p[x]?x:(p[x]=find(p[x]));
}
inline void join(int x, int y) {
if((x=find(x))==(y=find(y)))
return;
if(r[x]<r[y])
p[x]=y;
else
p[y]=x;
if(r[x]==r[y])
++r[x];
}
void dfs1(int u, int p) {
tin[u]=low[u]=dt++;
for(int e : adj1[u]) {
int v=u^a[e]^b[e];
if(!tin[v]) {
dfs1(v, e);
low[u]=min(low[v], low[u]);
if(low[v]>tin[u])
bg[e]=1;
} else if(e!=p)
low[u]=min(tin[v], low[u]);
}
}
void dfs2(int u, int p) {
for(int e : adj2[u]) {
int v=u^a[e]^b[e];
if(v==p)
continue;
d[v]=d[u]+1;
dfs2(v, u);
s[u]+=s[v];
}
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
for(int i=0; i<n; ++i)
p[i]=i;
for(int i=0; i<m; ++i) {
cin >> a[i] >> b[i], --a[i], --b[i];
adj1[a[i]].push_back(i);
adj1[b[i]].push_back(i);
}
for(int i=0; i<n; ++i)
if(!tin[i])
dfs1(i, -1);
for(int i=0; i<m; ++i)
if(!bg[i])
join(a[i], b[i]);
for(int i=0; i<m; ++i) {
if(!bg[i])
continue;
a[i]=find(a[i]);
b[i]=find(b[i]);
adj2[a[i]].push_back(i);
adj2[b[i]].push_back(i);
}
cin >> k;
while(k--) {
int x, y;
cin >> x >> y, --x, --y;
++s[find(x)], --s[find(y)];
}
for(int i=0; i<n; ++i) {
if(p[i]==i&&!d[i]) {
d[i]=1;
dfs2(i, -1);
}
}
for(int i=0; i<m; ++i) {
if(!bg[i]) {
cout << 'B';
continue;
}
int u=d[a[i]]>d[b[i]]?a[i]:b[i];
cout << (s[u]?((s[u]>0)==(u==a[i])?'R':'L'):'B');
}
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
4940 KB |
Output is correct |
2 |
Correct |
3 ms |
5028 KB |
Output is correct |
3 |
Correct |
4 ms |
5028 KB |
Output is correct |
4 |
Correct |
3 ms |
5068 KB |
Output is correct |
5 |
Correct |
3 ms |
5068 KB |
Output is correct |
6 |
Correct |
3 ms |
5032 KB |
Output is correct |
7 |
Correct |
3 ms |
5068 KB |
Output is correct |
8 |
Correct |
3 ms |
5032 KB |
Output is correct |
9 |
Correct |
3 ms |
5068 KB |
Output is correct |
10 |
Correct |
4 ms |
5068 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
4940 KB |
Output is correct |
2 |
Correct |
3 ms |
5028 KB |
Output is correct |
3 |
Correct |
4 ms |
5028 KB |
Output is correct |
4 |
Correct |
3 ms |
5068 KB |
Output is correct |
5 |
Correct |
3 ms |
5068 KB |
Output is correct |
6 |
Correct |
3 ms |
5032 KB |
Output is correct |
7 |
Correct |
3 ms |
5068 KB |
Output is correct |
8 |
Correct |
3 ms |
5032 KB |
Output is correct |
9 |
Correct |
3 ms |
5068 KB |
Output is correct |
10 |
Correct |
4 ms |
5068 KB |
Output is correct |
11 |
Correct |
38 ms |
10144 KB |
Output is correct |
12 |
Correct |
40 ms |
11552 KB |
Output is correct |
13 |
Correct |
49 ms |
13204 KB |
Output is correct |
14 |
Correct |
59 ms |
15016 KB |
Output is correct |
15 |
Correct |
62 ms |
15524 KB |
Output is correct |
16 |
Correct |
89 ms |
15472 KB |
Output is correct |
17 |
Correct |
69 ms |
17412 KB |
Output is correct |
18 |
Correct |
83 ms |
15552 KB |
Output is correct |
19 |
Correct |
78 ms |
18672 KB |
Output is correct |
20 |
Correct |
40 ms |
11112 KB |
Output is correct |
21 |
Correct |
38 ms |
11460 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
4940 KB |
Output is correct |
2 |
Correct |
3 ms |
5028 KB |
Output is correct |
3 |
Correct |
4 ms |
5028 KB |
Output is correct |
4 |
Correct |
3 ms |
5068 KB |
Output is correct |
5 |
Correct |
3 ms |
5068 KB |
Output is correct |
6 |
Correct |
3 ms |
5032 KB |
Output is correct |
7 |
Correct |
3 ms |
5068 KB |
Output is correct |
8 |
Correct |
3 ms |
5032 KB |
Output is correct |
9 |
Correct |
3 ms |
5068 KB |
Output is correct |
10 |
Correct |
4 ms |
5068 KB |
Output is correct |
11 |
Correct |
38 ms |
10144 KB |
Output is correct |
12 |
Correct |
40 ms |
11552 KB |
Output is correct |
13 |
Correct |
49 ms |
13204 KB |
Output is correct |
14 |
Correct |
59 ms |
15016 KB |
Output is correct |
15 |
Correct |
62 ms |
15524 KB |
Output is correct |
16 |
Correct |
89 ms |
15472 KB |
Output is correct |
17 |
Correct |
69 ms |
17412 KB |
Output is correct |
18 |
Correct |
83 ms |
15552 KB |
Output is correct |
19 |
Correct |
78 ms |
18672 KB |
Output is correct |
20 |
Correct |
40 ms |
11112 KB |
Output is correct |
21 |
Correct |
38 ms |
11460 KB |
Output is correct |
22 |
Correct |
92 ms |
18568 KB |
Output is correct |
23 |
Correct |
110 ms |
16856 KB |
Output is correct |
24 |
Correct |
90 ms |
16684 KB |
Output is correct |
25 |
Correct |
92 ms |
22112 KB |
Output is correct |
26 |
Correct |
110 ms |
17964 KB |
Output is correct |
27 |
Correct |
85 ms |
16768 KB |
Output is correct |
28 |
Correct |
30 ms |
8192 KB |
Output is correct |
29 |
Correct |
60 ms |
11756 KB |
Output is correct |
30 |
Correct |
52 ms |
12356 KB |
Output is correct |
31 |
Correct |
58 ms |
12228 KB |
Output is correct |
32 |
Correct |
63 ms |
16432 KB |
Output is correct |