제출 #1364129

#제출 시각아이디문제언어결과실행 시간메모리
1364129kawhietBridges (APIO19_bridges)C++20
0 / 100
226 ms589824 KiB
#include <bits/stdc++.h>
using namespace std;

#ifdef LOCAL
#include "debug.h"
#else
#define dbg(...) 47
#endif

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, m;
    cin >> n >> m;
    vector<vector<int>> g(n);
    vector<vector<set<int>>> c(n, vector<set<int>>(n));
    vector<array<int, 3>> e;
    for (int i = 0; i < m; i++) {
        int u, v, w;
        cin >> u >> v >> w;
        u--; v--;
        c[u][v].insert(w);
        c[v][u].insert(w);
        g[u].push_back(v);
        g[v].push_back(u);
        e.push_back({u, v, w});
    }
    int q;
    cin >> q;
    while (q--) {
        int t;
        cin >> t;
        if (t == 1) {
            int b, r;
            cin >> b >> r;
            b--;
            auto &[u, v, w] = e[b];
            c[u][v].erase(w);
            c[v][u].erase(w);
            w = r;
            c[u][v].insert(r);
            c[v][u].insert(r);
        } else {
            int s, w;
            cin >> s >> w;
            s--;
            queue<int> q;
            vector<bool> vis(n);
            int res = 1;
            vis[s] = true;
            q.push(s);
            while (!q.empty()) {
                int u = q.front();
                q.pop();
                for (int v : g[u]) {
                    if (*c[u][v].rbegin() >= w && !vis[v]) {
                        vis[v] = true;
                        res++;
                        q.push(v);
                    }
                }
            }
            cout << res << '\n';
        }
    }
    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…