Submission #1249290

#TimeUsernameProblemLanguageResultExecution timeMemory
1249290ender_shayanMaking Friends on Joitter is Fun (JOI20_joitter2)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; #define F first #define S second #define fast_io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define all(x) x.begin(),x.end() #define pb push_back #define Mp make_pair #define for1(n) for(int i=1;i<=n;i++) #define for0(n) for(int i=0;i<n;i++) #define set_dec(x) cout << fixed << setprecision(x); #define endl '\n' const ll mod=1e9+7; const int N=1e5+10,L=21,base=701; int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N]; vector<int>g[N]; map<int,int>in[N],out[N],is[N]; ll ans; int get_par(int v){ if(par[v]==0)return v; return par[v]=get_par(par[v]); } void merg(int u,int v){ u=get_par(u); v=get_par(v); if(u==v)return; if(sz[u]+in[u].size()+out[u].size()+is[u].size()>sz[v]+in[v].size()+out[v].size()+is[v].size())swap(u,v); par[u]=v; ans+=1ll*sz[v]*sz[u]*2; ans+=degin[v]*sz[u]+degin[u]*sz[v]; degin[v]+=degin[u]; out[v][u]=out[u][v]=in[v][u]=in[u][v]=0; vector<int>vec; for(pii p:out[u]){ int uu=p.F,t=p.S; out[v][uu]+=t; if(in[v][uu]) vec.pb(uu); } for(pii p:in[u]){ int uu=p.F,t=p.S; in[uu][v]+=t; if(out[v][uu]) vec.pb(uu); } for(int u:vec){ ans-=out[v][u]*sz[u]+out[u][v]*sz[v]; degin[v]-=out[u][v]; degin[u]-=out[v][u]; out[v][u]=out[u][v]=in[v][u]=in[u][v]=0; } sz[v]+=sz[u]; for(pii p:is[u])is[v][p.F]++; out[u].clear();in[u].clear();is[u].clear(); for(int u:vec)merg(u,v); } int main(){ fast_io cin>>n>>m; for1(n)sz[i]=1; for(int _=0;_<m;_++,cout<<ans<<endl){ int u,v;cin>>u>>v; int uu=u; u=get_par(u);v=get_par(v); if(u==v)continue; if(is[v][uu])continue; is[v][uu]=1; ans+=sz[v]; out[u][v]++; in[v][u]++;degin[v]++; if(in[u][v]){ ans-=1ll*out[u][v]*sz[v]+1ll*out[v][u]*sz[u]; degin[v]-=out[u][v]; degin[u]-=out[v][u]; out[v][u]=out[u][v]=in[v][u]=in[u][v]=0; merg(u,v); } } }#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; #define F first #define S second #define fast_io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define all(x) x.begin(),x.end() #define pb push_back #define Mp make_pair #define for1(n) for(int i=1;i<=n;i++) #define for0(n) for(int i=0;i<n;i++) #define set_dec(x) cout << fixed << setprecision(x); #define endl '\n' const ll mod=1e9+7; const int N=1e5+10,L=21,base=701; int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N]; vector<int>g[N]; map<int,int>in[N],out[N],is[N]; ll ans; int get_par(int v){ if(par[v]==0)return v; return par[v]=get_par(par[v]); } void merg(int u,int v){ u=get_par(u); v=get_par(v); if(u==v)return; if(sz[u]+in[u].size()+out[u].size()+is[u].size()>sz[v]+in[v].size()+out[v].size()+is[v].size())swap(u,v); par[u]=v; ans+=1ll*sz[v]*sz[u]*2; ans+=degin[v]*sz[u]+degin[u]*sz[v]; degin[v]+=degin[u]; out[v][u]=out[u][v]=in[v][u]=in[u][v]=0; vector<int>vec; for(pii p:out[u]){ int uu=p.F,t=p.S; out[v][uu]+=t; if(in[v][uu]) vec.pb(uu); } for(pii p:in[u]){ int uu=p.F,t=p.S; in[uu][v]+=t; if(out[v][uu]) vec.pb(uu); } for(int u:vec){ ans-=out[v][u]*sz[u]+out[u][v]*sz[v]; degin[v]-=out[u][v]; degin[u]-=out[v][u]; out[v][u]=out[u][v]=in[v][u]=in[u][v]=0; } sz[v]+=sz[u]; for(pii p:is[u])is[v][p.F]++; out[u].clear();in[u].clear();is[u].clear(); for(int u:vec)merg(u,v); } int main(){ fast_io cin>>n>>m; for1(n)sz[i]=1; for(int _=0;_<m;_++,cout<<ans<<endl){ int u,v;cin>>u>>v; int uu=u; u=get_par(u);v=get_par(v); if(u==v)continue; if(is[v][uu])continue; is[v][uu]=1; ans+=sz[v]; out[u][v]++; in[v][u]++;degin[v]++; if(in[u][v]){ ans-=1ll*out[u][v]*sz[v]+1ll*out[v][u]*sz[u]; degin[v]-=out[u][v]; degin[u]-=out[v][u]; out[v][u]=out[u][v]=in[v][u]=in[u][v]=0; merg(u,v); } } }

Compilation message (stderr)

joitter2.cpp:91:2: error: stray '#' in program
   91 | }#include<bits/stdc++.h>
      |  ^
joitter2.cpp:91:11: error: 'bits' was not declared in this scope
   91 | }#include<bits/stdc++.h>
      |           ^~~~
joitter2.cpp:91:16: error: 'stdc' was not declared in this scope; did you mean 'std'?
   91 | }#include<bits/stdc++.h>
      |                ^~~~
      |                std
joitter2.cpp:91:11: error: 'bits' was not declared in this scope
   91 | }#include<bits/stdc++.h>
      |           ^~~~
joitter2.cpp:91:16: error: 'stdc' was not declared in this scope; did you mean 'std'?
   91 | }#include<bits/stdc++.h>
      |                ^~~~
      |                std
joitter2.cpp:91:11: error: 'bits' was not declared in this scope
   91 | }#include<bits/stdc++.h>
      |           ^~~~
joitter2.cpp:91:16: error: 'stdc' was not declared in this scope; did you mean 'std'?
   91 | }#include<bits/stdc++.h>
      |                ^~~~
      |                std
joitter2.cpp:91:11: error: 'bits' was not declared in this scope
   91 | }#include<bits/stdc++.h>
      |           ^~~~
joitter2.cpp:91:16: error: 'stdc' was not declared in this scope; did you mean 'std'?
   91 | }#include<bits/stdc++.h>
      |                ^~~~
      |                std
joitter2.cpp:91:11: error: 'bits' was not declared in this scope
   91 | }#include<bits/stdc++.h>
      |           ^~~~
joitter2.cpp:91:16: error: 'stdc' was not declared in this scope; did you mean 'std'?
   91 | }#include<bits/stdc++.h>
      |                ^~~~
      |                std
joitter2.cpp:91:11: error: 'bits' was not declared in this scope
   91 | }#include<bits/stdc++.h>
      |           ^~~~
joitter2.cpp:91:16: error: 'stdc' was not declared in this scope; did you mean 'std'?
   91 | }#include<bits/stdc++.h>
      |                ^~~~
      |                std
joitter2.cpp:91:11: error: 'bits' was not declared in this scope
   91 | }#include<bits/stdc++.h>
      |           ^~~~
joitter2.cpp:91:16: error: 'stdc' was not declared in this scope; did you mean 'std'?
   91 | }#include<bits/stdc++.h>
      |                ^~~~
      |                std
joitter2.cpp:91:11: error: 'bits' was not declared in this scope
   91 | }#include<bits/stdc++.h>
      |           ^~~~
joitter2.cpp:91:16: error: 'stdc' was not declared in this scope; did you mean 'std'?
   91 | }#include<bits/stdc++.h>
      |                ^~~~
      |                std
joitter2.cpp:91:11: error: 'bits' was not declared in this scope
   91 | }#include<bits/stdc++.h>
      |           ^~~~
joitter2.cpp:91:16: error: 'stdc' was not declared in this scope; did you mean 'std'?
   91 | }#include<bits/stdc++.h>
      |                ^~~~
      |                std
joitter2.cpp:91:3: error: 'include' does not name a type
   91 | }#include<bits/stdc++.h>
      |   ^~~~~~~
joitter2.cpp:112:10: error: redefinition of 'const ll mod'
  112 | const ll mod=1e9+7;
      |          ^~~
joitter2.cpp:22:10: note: 'const ll mod' previously defined here
   22 | const ll mod=1e9+7;
      |          ^~~
joitter2.cpp:114:11: error: redefinition of 'const int N'
  114 | const int N=1e5+10,L=21,base=701;
      |           ^
joitter2.cpp:24:11: note: 'const int N' previously defined here
   24 | const int N=1e5+10,L=21,base=701;
      |           ^
joitter2.cpp:114:20: error: redefinition of 'const int L'
  114 | const int N=1e5+10,L=21,base=701;
      |                    ^
joitter2.cpp:24:20: note: 'const int L' previously defined here
   24 | const int N=1e5+10,L=21,base=701;
      |                    ^
joitter2.cpp:114:25: error: redefinition of 'const int base'
  114 | const int N=1e5+10,L=21,base=701;
      |                         ^~~~
joitter2.cpp:24:25: note: 'const int base' previously defined here
   24 | const int N=1e5+10,L=21,base=701;
      |                         ^~~~
joitter2.cpp:116:5: error: redefinition of 'int A [100010]'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |     ^
joitter2.cpp:26:5: note: 'int A [100010]' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |     ^
joitter2.cpp:116:10: error: redefinition of 'int B [100010]'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |          ^
joitter2.cpp:26:10: note: 'int B [100010]' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |          ^
joitter2.cpp:116:15: error: redefinition of 'int C [100010]'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |               ^
joitter2.cpp:26:15: note: 'int C [100010]' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |               ^
joitter2.cpp:116:20: error: redefinition of 'int D [100010]'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                    ^
joitter2.cpp:26:20: note: 'int D [100010]' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                    ^
joitter2.cpp:116:25: error: redefinition of 'int n'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                         ^
joitter2.cpp:26:25: note: 'int n' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                         ^
joitter2.cpp:116:27: error: redefinition of 'int m'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                           ^
joitter2.cpp:26:27: note: 'int m' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                           ^
joitter2.cpp:116:29: error: redefinition of 'int k'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                             ^
joitter2.cpp:26:29: note: 'int k' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                             ^
joitter2.cpp:116:31: error: redefinition of 'int q'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                               ^
joitter2.cpp:26:31: note: 'int q' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                               ^
joitter2.cpp:116:33: error: redefinition of 'int dp [100010]'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                                 ^~
joitter2.cpp:26:33: note: 'int dp [100010]' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                                 ^~
joitter2.cpp:116:39: error: redefinition of 'int par [100010]'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                                       ^~~
joitter2.cpp:26:39: note: 'int par [100010]' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                                       ^~~
joitter2.cpp:116:46: error: redefinition of 'int sz [100010]'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                                              ^~
joitter2.cpp:26:46: note: 'int sz [100010]' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                                              ^~
joitter2.cpp:116:52: error: redefinition of 'int degin [100010]'
  116 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                                                    ^~~~~
joitter2.cpp:26:52: note: 'int degin [100010]' previously declared here
   26 | int A[N],B[N],C[N],D[N],n,m,k,q,dp[N],par[N],sz[N],degin[N];
      |                                                    ^~~~~
joitter2.cpp:117:12: error: redefinition of 'std::vector<int> g [100010]'
  117 | vector<int>g[N];
      |            ^
joitter2.cpp:27:12: note: 'std::vector<int> g [100010]' previously declared here
   27 | vector<int>g[N];
      |            ^
joitter2.cpp:118:13: error: redefinition of 'std::map<int, int> in [100010]'
  118 | map<int,int>in[N],out[N],is[N];
      |             ^~
joitter2.cpp:28:13: note: 'std::map<int, int> in [100010]' previously declared here
   28 | map<int,int>in[N],out[N],is[N];
      |             ^~
joitter2.cpp:118:19: error: redefinition of 'std::map<int, int> out [100010]'
  118 | map<int,int>in[N],out[N],is[N];
      |                   ^~~
joitter2.cpp:28:19: note: 'std::map<int, int> out [100010]' previously declared here
   28 | map<int,int>in[N],out[N],is[N];
      |                   ^~~
joitter2.cpp:118:26: error: redefinition of 'std::map<int, int> is [100010]'
  118 | map<int,int>in[N],out[N],is[N];
      |                          ^~
joitter2.cpp:28:26: note: 'std::map<int, int> is [100010]' previously declared here
   28 | map<int,int>in[N],out[N],is[N];
      |                          ^~
joitter2.cpp:119:4: error: redefinition of 'll ans'
  119 | ll ans;
      |    ^~~
joitter2.cpp:29:4: note: 'll ans' previously declared here
   29 | ll ans;
      |    ^~~
joitter2.cpp:120:5: error: redefinition of 'int get_par(int)'
  120 | int get_par(int v){
      |     ^~~~~~~
joitter2.cpp:30:5: note: 'int get_par(int)' previously defined here
   30 | int get_par(int v){
      |     ^~~~~~~
joitter2.cpp:124:6: error: redefinition of 'void merg(int, int)'
  124 | void merg(int u,int v){
      |      ^~~~
joitter2.cpp:34:6: note: 'void merg(int, int)' previously defined here
   34 | void merg(int u,int v){
      |      ^~~~
joitter2.cpp:158:5: error: redefinition of 'int main()'
  158 | int main(){
      |     ^~~~
joitter2.cpp:68:5: note: 'int main()' previously defined here
   68 | int main(){
      |     ^~~~