제출 #982491

#제출 시각아이디문제언어결과실행 시간메모리
982491MuhammadSaram철인 이종 경기 (APIO18_duathlon)C++17
31 / 100
51 ms16836 KiB
/********************* بسم الله الرحمن الرحيم ***********************/ /******************** ٱلْحَمْدُ لِلَّٰهِ رَبِّ ٱلْعَالَمِينَ *************************/ /******************* Prophet Muhammad صلى الله عليه وسلم ************/ /*********************** وَقُل رَّبِّ زِدْنِي عِلْمًا **************************/ #ifdef ONLINE_JUDGE #pragma GCC optimize("Ofast") #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #else #endif #include <bits/stdc++.h> using namespace std; #define int long long #define endl '\n' #define in binary_search #define ll long long #define ld long double #define Hey ios::sync_with_stdio(false); #define Welcome cin.tie(NULL), cout.tie(NULL); #define all(v) v.begin(),v.end() #define rall(v) v.rbegin(), v.rend() const int M = 1e5 + 1; vector<int> nei[M]; bool vis[M]; int cnt,ans,subt[M],deg[M],dep[M]; vector<int> cc; void dfs(int u) { vis[u]=true; subt[u]=1; cnt++; cc.push_back(u); for (int i:nei[u]) if (!vis[i]) { dfs(i); subt[u]+=subt[i]; } } void dfs1(int u) { vis[u]=true; for (int i:nei[u]) if (!vis[i]) { ans+=(subt[i]-1)*(cnt-subt[i]-1)*2; ans+=cnt-2; dep[i]=dep[u]+1; dfs1(i); } else if(dep[i]<dep[u] and dep[u]-1!=dep[i]) { int cyc=dep[u]-dep[i]+1; int x=cnt-subt[i]; ans+=cyc*(cyc-2)*(cyc-1)/3*2; ans+=x*(cyc-1)*(cyc-2); ans+=(subt[u]-1)*(cyc-1)*(cyc-2); } } void solve() { int n,m; cin>>n>>m; for (int i=0;i<m;i++) { int u,v; cin>>u>>v; nei[u].push_back(v); nei[v].push_back(u); deg[u]++; deg[v]++; } for (int i=1;i<=n;i++) { if (!vis[i]) { cc.clear(); cnt=0; dfs(i); for (int j:cc) vis[j]=false; dfs1(i); } } cout<<ans<<endl; } signed main() { Hey! Welcome // S'up int t = 1; cout<<fixed<<setprecision(20); while (t--) solve(); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

count_triplets.cpp: In function 'int main()':
count_triplets.cpp:99:5: warning: value computed is not used [-Wunused-value]
   99 |  Hey! Welcome // S'up
      |     ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...