Submission #422499

#TimeUsernameProblemLanguageResultExecution timeMemory
422499HideoMaking Friends on Joitter is Fun (JOI20_joitter2)C++17
0 / 100
11 ms16716 KiB
#include <bits/stdc++.h> using namespace std; #define all(s) s.begin(), s.end() #define ll long long #define fr first #define sc second #define pb push_back #define mk make_pair #define pi pair < int, int > const int N = 3e5 + 7; const int INF = 1e9 + 7; ll sum; ll p[N]; int n, m; set < int > g[N]; int findp (int x){ if (p[x] < 0) return x; return p[x] = findp(p[x]); } void unite (int v, int u){ v = findp(v); u = findp(u); if (v != u){ sum -= 1ll * int(g[u].size()) * -p[u]; sum -= 1ll * int(g[v].size()) * -p[v]; if (g[u].size() > g[v].size()) swap(v, u); for (int to : g[u]) g[v].insert(to); p[v] += p[u]; p[u] = v; sum += 1ll * int(g[v].size()) * -p[v]; } } bool check (int v, int u){ v = findp(v); u = findp(u); if (u != v){ for (int to : g[u]) if (findp(to) == v) return true; } return false; } main (){ ios_base::sync_with_stdio(0); cin.tie(0); memset(p, -1, sizeof(p)); cin >> n >> m; for (int i = 1; i <= m; i++){ int a, b; cin >> a >> b; if (check(b, a)) unite(a, b); else { b = findp(b); sum -= 1ll * int(g[b].size()) * -p[b]; g[b].insert(a); sum += 1ll * int(g[b].size()) * -p[b]; } cout << sum << endl; } }

Compilation message (stderr)

joitter2.cpp:54:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   54 | main (){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...