Submission #530776

#TimeUsernameProblemLanguageResultExecution timeMemory
530776A_DBridges (APIO19_bridges)C++14
14 / 100
98 ms10928 KiB
#include <bits/stdc++.h> #define int long long #define ii pair<int,int> #define F first #define S second using namespace std; const int N=1e5+100; int p[N]; int si[N]; int ans[N]; pair<ii,int> a[N]; vector<pair<int,ii>> vec; int find(int u) { if(u==p[u])return u; return p[u]=find(p[u]); } void solve() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++){ p[i]=i; si[i]=1; } while(m--){ int a,b,c; scanf("%lld",&a); scanf("%lld",&b); scanf("%lld",&c); vec.push_back({c,{a,b}}); } sort(vec.begin(),vec.end()); reverse(vec.begin(),vec.end()); cin>>m; for(int i=1;i<=m;i++){ int t; scanf("%lld",&t); a[i].S=i; scanf("%lld",&a[i].F.S); scanf("%lld",&a[i].F.F); a[i].S=i; } vec.push_back({0,{0,0}}); sort(a+1,a+m+1); reverse(a+1,a+m+1); int idx=0; for(int i=1;i<=m;i++){ while(vec[idx].F>=a[i].F.F){ int aa=find(vec[idx].S.F); int bb=find(vec[idx].S.S); if(p[aa]!=p[bb]){ p[bb]=aa; si[aa]+=si[bb]; si[bb]=0; } idx++; } ans[a[i].S]=si[find(a[i].F.S)]; } for(int i=1;i<=m;i++)printf("%lld ",ans[i]); } main() { int t=1; // cin>>t; while(t--){ solve(); } } /* 5 4 1 2 1 2 3 2 3 4 3 4 5 1 4 2 1 5 2 1 3 3 1 4 3 3 3 */

Compilation message (stderr)

bridges.cpp:66:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   66 | main()
      | ^~~~
bridges.cpp: In function 'void solve()':
bridges.cpp:31:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   31 |         scanf("%lld",&a);
      |         ~~~~~^~~~~~~~~~~
bridges.cpp:32:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |         scanf("%lld",&b);
      |         ~~~~~^~~~~~~~~~~
bridges.cpp:33:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   33 |         scanf("%lld",&c);
      |         ~~~~~^~~~~~~~~~~
bridges.cpp:41:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   41 |         scanf("%lld",&t);
      |         ~~~~~^~~~~~~~~~~
bridges.cpp:43:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   43 |         scanf("%lld",&a[i].F.S);
      |         ~~~~~^~~~~~~~~~~~~~~~~~
bridges.cpp:44:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   44 |         scanf("%lld",&a[i].F.F);
      |         ~~~~~^~~~~~~~~~~~~~~~~~
#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...