Submission #962533

#TimeUsernameProblemLanguageResultExecution timeMemory
962533AmrBridges (APIO19_bridges)C++17
14 / 100
176 ms15712 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; #define S second #define F first #define all(x) (x).begin(),(x).end() #define sz size() #define Yes cout << "YES" << endl #define No cout << "NO" << endl #define pb(x) push_back(x); #define endl '\n' #define fast ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); const int N=1e5+7; ll INF=INT_MAX,mod=1e9+7; int TT=1; ll power(ll x, unsigned int y) { ll res = 1; x = x; // % mod; if (x == 0) return 0; while (y > 0) { if (y & 1) res = (res*x) ; // % mod; y = y>>1; x = (x*x) ; // % mod; } return res; } ll n , m; vector<ll> e[N]; ll p[N]; ll siz[N]; ll ans[N]; pair<ll,ll> qu[N]; vector<pair<ll,ll> > vec; ll get(ll x) { if(x==p[x]) return x; return p[x] = get(p[x]); } void merg(ll x, ll y){ x = get(x); y = get(y); if(x==y) return; p[x] = y; siz[y] +=siz[x]; } void solve() { ll n , m; cin >> n >> m; for(int i =1; i <= n; i++) p[i] = i, siz[i] = 1; for(int i = 0; i < m; i++) { e[i].resize(3); cin >> e[i][1] >> e[i][2] >> e[i][0]; } sort(e,e+m); reverse(e,e+m); ll q; cin >> q; for(int i = 0; i < q; i++) { ll tp ; cin >> tp; cin >> qu[i].F >> qu[i].S; vec.push_back({qu[i].S,i}); } sort(all(vec)); reverse(all(vec)); ll l = 0, r = 0; while(l<q||r<m) { if(r==m||(l<q&&e[r][0]<vec[l].F)) { ans[vec[l].S] = siz[get(qu[vec[l].S].F)]; l++; } else { ll x = e[r][1] , y = e[r][2]; merg(x,y); r++; } } for(int i = 0; i < q; i++) cout << ans[i] << " "; cout << endl; } int main(){ //freopen("friday.in","r",stdin); //freopen("frid while(TT--) solve(); return 0; }

Compilation message (stderr)

bridges.cpp: In function 'void solve()':
bridges.cpp:83:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   83 |     for(int i = 0; i < q; i++)
      |     ^~~
bridges.cpp:84:32: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   84 |         cout << ans[i] << " "; cout << 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...