Submission #3010249
Source Code Expand
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace std; using namespace __gnu_pbds; #define fi first #define se second #define mp make_pair #define pb push_back #define fbo find_by_order #define ook order_of_key typedef long long ll; typedef pair<ll,ll> ii; typedef vector<int> vi; typedef long double ld; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds; typedef set<int>::iterator sit; typedef map<int,int>::iterator mit; typedef vector<int>::iterator vit; struct DSU { int S; struct node { int p; ll sum; }; vector<node> dsu; DSU(int n) { S = n; for(int i = 0; i < n; i++) { node tmp; tmp.p = i; tmp.sum = 1; dsu.pb(tmp); } } void reset(int n) { dsu.clear(); S = n; for(int i = 0; i < n; i++) { node tmp; tmp.p = i; tmp.sum = 1; dsu.pb(tmp); } } int rt(int u) { if(dsu[u].p == u) return u; dsu[u].p = rt(dsu[u].p); return dsu[u].p; } void merge(int u, int v) { u = rt(u); v = rt(v); if(u == v) return ; if(rand()&1) swap(u, v); dsu[v].p = u; dsu[u].sum += dsu[v].sum; } bool sameset(int u, int v) { if(rt(u) == rt(v)) return true; return false; } ll getstat(int u) { return dsu[rt(u)].sum; } }; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n,m; cin>>n>>m; DSU dsu(n); for(int i=0;i<m;i++) { int u,v; cin>>u>>v; u--; v--; dsu.merge(u,v); } ll ans=0; for(ll i=0;i<=n;i++) { if(dsu.getstat(0)<=i&&dsu.getstat(1)<=n-i) { ans=max(ans,(i*(i-1)+(n-i)*(n-i-1))/2); } } cout<<ans-m<<'\n'; }
Submission Info
Submission Time | |
---|---|
Task | D - Shock |
User | fxt |
Language | C++ (GCC 5.4.1) |
Score | 100 |
Code Size | 1740 Byte |
Status | AC |
Exec Time | 26 ms |
Memory | 3056 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | a01, a02, a03 |
All | a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
a01 | AC | 1 ms | 256 KB |
a02 | AC | 1 ms | 256 KB |
a03 | AC | 1 ms | 256 KB |
b04 | AC | 1 ms | 256 KB |
b05 | AC | 4 ms | 2420 KB |
b06 | AC | 22 ms | 3056 KB |
b07 | AC | 22 ms | 2544 KB |
b08 | AC | 12 ms | 2420 KB |
b09 | AC | 22 ms | 3056 KB |
b10 | AC | 21 ms | 2420 KB |
b11 | AC | 1 ms | 256 KB |
b12 | AC | 26 ms | 2420 KB |
b13 | AC | 25 ms | 2420 KB |
b14 | AC | 25 ms | 2420 KB |
b15 | AC | 26 ms | 2420 KB |
b16 | AC | 26 ms | 2420 KB |
b17 | AC | 26 ms | 2420 KB |
b18 | AC | 20 ms | 2420 KB |
b19 | AC | 20 ms | 2420 KB |
b20 | AC | 2 ms | 640 KB |
b21 | AC | 4 ms | 256 KB |
b22 | AC | 26 ms | 2420 KB |
b23 | AC | 26 ms | 2420 KB |