QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#583861 | #8591. Shops | ba1234anh | 0 | 0ms | 0kb | C++20 | 1.9kb | 2024-09-22 23:11:42 | 2024-09-22 23:11:42 |
answer
#include <bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define N 500005
#define ii pair<int,int>
#define bit(i,j) ((i>>j)&1)
#define sz(i) (int)i.size()
#define endl '\n'
#define FOR(i,a,b) for(int i=(a);i<=(b);i++)
using namespace std;
int n, m;
struct arr
{
int u, v, w;
};
vector<arr>vec;
namespace sub1
{
int res;
int c[N], par[N], sz[N];
vector<ii>g[N];
bool cmp(arr a, arr b)
{
return a.w < b.w;
}
void init()
{
for(int i = 1; i <= n; i++)
{
par[i] = i;
sz[i] = 1;
}
}
int found(int v)
{
if(v == par[v])
return v;
return par[v] = found(par[v]);
}
bool union_set(int u, int v)
{
u = found(u);
v = found(v);
if(u == v)
return 0;
if(sz[u] > sz[v])
swap(u, v);
par[v] = u;
sz[u] += sz[v];
}
void kruskal()
{
sort(vec.begin(), vec.end(), cmp);
for(int i = 0; i < sz(vec); i++)
{
int u = vec[i].u, v = vec[i].v, w = vec[i].w;
if(union_set(u, v))
{
g[u].push_back({v, w});
g[v].push_back({u, w});
}
}
}
void dfs(int u, int p)
{
int ans = INT_MAX;
c[u] = c[p] ^ 1;
for(ii i : g[u])
{
int v = i.F, w = i.S;
if(v == p)
continue;
ans = min(ans, w);
dfs(v, u);
}
if(ans!=INT_MAX)
res = max(res, ans);
}
void solve()
{
init();
kruskal();
c[1] = 1;
dfs(1, 0);
cout << res << endl;
for(int i = 1; i <= n; i++)
if(c[i])
cout << "B";
else
cout << "D";
}
}
main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> m;
for(int i = 1; i <= m; i++)
{
int x, y, z;
cin >> x >> y >> z;
vec.push_back({x, y, z});
}
sub1::solve();
}
/**
3 3
1 2 3
2 3 1
1 3 2
**/
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Time Limit Exceeded
Test #1:
score: 0
Time Limit Exceeded
input:
3 3 1 2 3 2 3 1 1 3 2
output:
result:
Subtask #2:
score: 0
Time Limit Exceeded
Test #11:
score: 0
Time Limit Exceeded
input:
500000 499999 1 2 776715136 2 3 406881694 3 4 265792290 4 5 507607272 5 6 182246639 6 7 997847597 7 8 164130256 8 9 278962226 9 10 411194641 10 11 363646402 11 12 672225656 12 13 494629089 13 14 717664153 14 15 121619271 15 16 476857704 16 17 301215244 17 18 810217743 18 19 850722975 19 20 10710274 ...
output:
result:
Subtask #3:
score: 0
Skipped
Dependency #2:
0%
Subtask #4:
score: 0
Time Limit Exceeded
Test #31:
score: 0
Time Limit Exceeded
input:
366489 397001 2 127909 1 7 171229 1 8 158597 1 11 282213 1 14 356007 1 15 286102 1 16 93205 1 17 260111 1 18 138962 1 20 359938 1 29 223905 1 31 357684 1 32 259968 1 34 65205 1 37 200276 1 41 83195 1 43 159858 1 48 332277 1 50 320322 1 51 338467 1 53 262785 1 55 83815 1 56 173198 1 58 169473 1 63 19...
output:
result:
Subtask #5:
score: 0
Skipped
Dependency #1:
0%