Submission #1130961

#TimeUsernameProblemLanguageResultExecution timeMemory
1130961Ludissey다리 (APIO19_bridges)C++20
14 / 100
78 ms7240 KiB
#include <bits/stdc++.h>
#define int long long
#define sz(a) (int)a.size()
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
 
using namespace std;

vector<int> parent;
vector<int> sz;

int getParent(int a){
    if(a==parent[a]) return a;
    return parent[a]=getParent(parent[a]);
}

void unite(int a, int b){
    a=getParent(a);
    b=getParent(b);
    if(a==b) return;
    if(sz[b]>sz[a]) swap(a,b);
    sz[a]+=sz[b];
    parent[b]=a;
    return;
}

signed main() {
    ios_base::sync_with_stdio(false); cin.tie(nullptr);
    int n,m,q; cin >> n >> m;
    parent.resize(n);
    sz.resize(n);
    vector<pair<int,pair<int,int>>> edges(m);
    for (int i = 0; i < m; i++)
    {
        int u,v,w; cin >> u >> v >> w; u--; v--;
        edges[i]={w,{u,v}};
    }
    cin >> q;
    for (int i = 0; i < n; i++)
    {
        parent[i]=i;
        sz[i]=1;
    }
    
    vector<pair<int,pair<int,int>>> query(q);
    vector<int> out(q);
    for (int i = 0; i < q; i++)
    {
        int t; cin >> t;
        int s,mw; cin >> s >> mw; s--;
        query[i]={mw,{s,i}};
    }
    sort(rall(edges));
    sort(rall(query));
    int l=0;
    for (int i = 0; i < q; i++)
    {
        int mw=query[i].first,s=query[i].second.first,j=query[i].second.second; 
        while(l<m&&edges[l].first>=mw) {
            unite(edges[l].second.first,edges[l].second.second);
            l++;
        }
        out[j]=sz[getParent(s)];
    }
    for (int i = 0; i < q; i++)
    {
        cout << out[i] << "\n";
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...