Submission #44661865


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

#define x first
#define y second
#define fro(i, x, y) for(int i = (x);i <= (y);i++)
#define pre(i, x, y) for(int i = (x);i >= (y);i--)

typedef long long ll;
typedef __int128 lll;
typedef unsigned int uint;
typedef pair<int, int> PII;
typedef unsigned long long ull;

const int N = 1000010;
const int mod = 998244353;

int n, m, cnt, tot, a[N], b[N], fa[N], val[N], siz[N], head[N];
struct edge { int to, nxt; } e[N * 2]; int q, dep[N], f[N][20];

inline void add(int x, int y)
{
    e[++cnt] = {y, head[x]}, head[x] = cnt;
    e[++cnt] = {x, head[y]}, head[y] = cnt;
}

inline int gf(int x)
{
    return (fa[x] == x ? x : fa[x] = gf(fa[x]));
}

inline void dfs(int now, int fa)
{
    f[now][0] = fa, dep[now] = dep[fa] + 1;
    for(int i = 1;i <= 19;i++)
        f[now][i] = f[f[now][i - 1]][i - 1];
    for(int i = head[now];i;i = e[i].nxt)
        if(e[i].to != fa) dfs(e[i].to, now), siz[now] += siz[e[i].to];
    if(siz[now] == 0) siz[now]++;
}

inline int check(int x, int y, int z)
{
    for(int i = 19;i >= 0;i--)
        if(val[f[x][i]] <= z) x = f[x][i];
    for(int i = 19;i >= 0;i--)
        if(val[f[y][i]] <= z) y = f[y][i];
    return (x == y ? siz[x] : siz[x] + siz[y]);
}

signed main()
{
    ios::sync_with_stdio(0), cin.tie(0);
    cin >> n >> m, val[0] = 1e9;
    iota(fa + 1, fa + n + 1, 1), tot = n;
    fro(i, 1, m) cin >> a[i] >> b[i];
    fro(i, 1, m)
    {
        int x = gf(a[i]), y = gf(b[i]);
        if(x == y) continue; val[++tot] = i;
        add(x, tot), add(y, tot);
        fa[x] = fa[y] = fa[tot] = tot;
    }
    dfs(tot, 0), cin >> q;
    fro(i, 1, q)
    {
        int x, y, z;
        cin >> x >> y >> z;
        int l = 1, r = 1e9, ans;
        while(l <= r)
        {
            int mid = (l + r) / 2;
            if(check(x, y, mid) < z)
                l = mid + 1;
            else r = mid - 1, ans = mid;
        }
        cout << ans << "\n";
    }
    return 0;
}

Submission Info

Submission Time
Task D - Stamp Rally
User win114514
Language C++ (GCC 9.2.1)
Score 1000
Code Size 2039 Byte
Status AC
Exec Time 584 ms
Memory 32960 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:60:9: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation]
   60 |         if(x == y) continue; val[++tot] = i;
      |         ^~
./Main.cpp:60:30: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’
   60 |         if(x == y) continue; val[++tot] = i;
      |                              ^~~
./Main.cpp:77:24: warning: ‘ans’ may be used uninitialized in this function [-Wmaybe-uninitialized]
   77 |         cout << ans << "\n";
      |                        ^~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 1
AC × 33
Set Name Test Cases
Sample 0_00.txt
All 0_00.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt, 1_16.txt, 1_17.txt, 1_18.txt, 1_19.txt, 1_20.txt, 1_21.txt, 1_22.txt, 1_23.txt, 1_24.txt, 1_25.txt, 1_26.txt, 1_27.txt, 1_28.txt, 1_29.txt, 1_30.txt, 1_31.txt
Case Name Status Exec Time Memory
0_00.txt AC 6 ms 3532 KiB
1_00.txt AC 495 ms 32960 KiB
1_01.txt AC 584 ms 32876 KiB
1_02.txt AC 488 ms 29700 KiB
1_03.txt AC 555 ms 29660 KiB
1_04.txt AC 489 ms 28676 KiB
1_05.txt AC 548 ms 28788 KiB
1_06.txt AC 503 ms 27828 KiB
1_07.txt AC 551 ms 27840 KiB
1_08.txt AC 509 ms 26828 KiB
1_09.txt AC 538 ms 26776 KiB
1_10.txt AC 513 ms 26644 KiB
1_11.txt AC 554 ms 26708 KiB
1_12.txt AC 499 ms 26940 KiB
1_13.txt AC 498 ms 26940 KiB
1_14.txt AC 449 ms 29832 KiB
1_15.txt AC 433 ms 29720 KiB
1_16.txt AC 447 ms 26204 KiB
1_17.txt AC 479 ms 26816 KiB
1_18.txt AC 476 ms 26636 KiB
1_19.txt AC 454 ms 26748 KiB
1_20.txt AC 476 ms 25332 KiB
1_21.txt AC 474 ms 26692 KiB
1_22.txt AC 483 ms 26408 KiB
1_23.txt AC 498 ms 26552 KiB
1_24.txt AC 478 ms 25544 KiB
1_25.txt AC 492 ms 26528 KiB
1_26.txt AC 474 ms 25516 KiB
1_27.txt AC 493 ms 26648 KiB
1_28.txt AC 484 ms 26312 KiB
1_29.txt AC 488 ms 25552 KiB
1_30.txt AC 477 ms 26544 KiB
1_31.txt AC 488 ms 25252 KiB