Submission #1255841

#TimeUsernameProblemLanguageResultExecution timeMemory
1255841M_SH_O다리 (APIO19_bridges)C++20
14 / 100
53 ms8136 KiB
#include <bits/stdc++.h> //#include "rainbow.h" #define ll long long #define ll1 long long #define ull unsigned long long #define dou long double #define str string #define vll vector<ll> #define vi vector<int> #define pll pair<ll, ll> #define vpll vector<pll> #define vbool vector<bool> #define vstr vector<str> #define vvll vector<vll> #define pb push_back #define pf push_front #define endl "\n" #define fr first #define se second // #define sortcmp(a) sort(a.begin(), a.end(), cmp) #define sort(a) sort(a.begin(), a.end()) #define reverse(a) reverse(a.begin(), a.end()) #define speed ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0) #define ordered_set tree<ll, null_type, less_equal<ll>, rb_tree_tag, tree_order_statistics_node_update> using namespace std; //using namespace __gnu_pbds; const ll INF = 1e18; const int lg = 20; mt19937 rng(time(0)); ll randll(ll l, ll r){ return uniform_int_distribution<ll>(l, r)(rng); } vll p, s; ll find(ll v){ if(p[v] == v) return v; return p[v] = find(p[v]); } void unite(ll a, ll b){ a = find(a); b = find(b); if(a == b) return; if(s[a] < s[b]){ p[a] = b; s[b] += s[a]; } else{ p[b] = a; s[a] += s[b]; } } int main(){ speed; ll n, m; cin >> n >> m; vector<pair<ll, pll>> v, qu; s.resize(n+7, 1); p.resize(n+7); for(int i = 1; i <= n; i ++){ p[i] = i; } for(int i =0 ; i < m; i ++){ ll a, b, c; cin >> a >> b >> c; v.pb({c, {a, b}}); } ll q; cin >> q; for(int i = 0; i < q; i ++){ ll x, a, b; cin >> x >> a >> b; qu.pb({b, {a, i}}); } sort(qu); sort(v); reverse(v); reverse(qu); ll l = 0; vll res(q, 1); for(auto i : v){ //cout << i.fr << ' ' << i.se.fr << ' ' << i.se.se << endl; while(l < q){ if(qu[l].fr <= i.fr) break; //cout << qu[l].se.fr << ' ' << qu[l].fr << endl; res[qu[l].se.se] = s[find(qu[l].se.fr)]; l ++; } unite(i.se.fr, i.se.se); } while(l < q){ res[qu[l].se.se] = s[find(qu[l].se.fr)]; l ++; } for(int i = 0; i < q; i ++){ cout << res[i] << endl; } }
#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...