제출 #1155981

#제출 시각아이디문제언어결과실행 시간메모리
115598112345678Simurgh (IOI17_simurgh)C++20
0 / 100
0 ms324 KiB
#include "simurgh.h" #include <bits/stdc++.h> using namespace std; const int nx=505; int vs[nx], cnt, mx; vector<pair<int, int>> d[nx]; vector<int> g[nx], mn, qrs, vl, res; set<int> s; void dfs(int u, int st) { vs[u]=1; for (auto [v, idx]:d[u]) { if (vs[v]) continue; if (v==st) g[cnt].push_back(idx); else mn.push_back(idx), dfs(v, st); } } std::vector<int> find_roads(int n, std::vector<int> _u, std::vector<int> _v) { for (int i=0; i<_u.size(); i++) d[_u[i]].push_back({_v[i], i}), d[_v[i]].push_back({_u[i], i}); for (int i=0; i<n; i++) { cnt=0; mn.clear(); for (int j=0; j<n; j++) vs[j]=0; for (int j=0; j<n; j++) { if (j==i||vs[j]) continue; dfs(j, i); cnt++; } for (int j=0; j<cnt; j++) { mx=0; qrs=mn; for (int k=0; k<cnt; k++) if (k!=j) qrs.push_back(g[k][0]); vl.resize(g[j].size()); for (int k=0; k<g[j].size(); k++) { qrs.push_back(g[j][k]); /* cout<<"query : "; for (auto x:qrs) cout<<x<<' '; cout<<'\n'; */ if (qrs.size()!=n-1) cout<<1/0; vl[k]=count_common_roads(qrs); qrs.pop_back(); mx=max(mx, vl[k]); } for (int k=0; k<g[j].size(); k++) if (vl[k]==mx) s.insert(g[j][k]); } } for (auto x:s) res.push_back(x); //cout<<"x "<<x<<'\n'; return res; }

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

simurgh.cpp: In function 'std::vector<int> find_roads(int, std::vector<int>, std::vector<int>)':
simurgh.cpp:51:45: warning: division by zero [-Wdiv-by-zero]
   51 |                 if (qrs.size()!=n-1) cout<<1/0;
      |                                            ~^~
#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...