Submission #60625

#TimeUsernameProblemLanguageResultExecution timeMemory
60625TenuunSimurgh (IOI17_simurgh)C++11
0 / 100
4 ms940 KiB
#include "simurgh.h" #include <bits/stdc++.h> using namespace std; vector<pair<int, int> >adj[501]; vector<int>t; bool vis[501], check[125000]={false}; void DFS(int u, int p){ vis[u]=true; for(auto v:adj[u]){ if(v.first!=p && vis[v.first]==false){ vis[v.first]=true; if(p!=-1) t.push_back(v.second); DFS(v.first, u); } } } int calc(int u){ int mx=-1, p, tmp; for(auto v:adj[u]){ if(check[v.second]){ t.push_back(v.second); mx=count_common_roads(t); t.pop_back(); } } for(auto v:adj[u]){ if(check[v.second])continue; t.push_back(v.second); tmp=count_common_roads(t); if(mx==-1){ mx=tmp; p=v.second; } if(tmp==mx){ p=v.second; } t.pop_back(); } return p; } vector<int> find_roads(int n, std::vector<int> u, std::vector<int> v) { int f, ind=0; memset(check, false, sizeof check); vector<int> res(n - 1); for(int i=0; i<u.size(); i++){ adj[u[i]].push_back({v[i], i}); adj[v[i]].push_back({u[i], i}); } for(int i=0; i<n; i++){ memset(vis, false, sizeof vis); t.clear(); DFS(i, -1); f=calc(i); //cout << i << " " << f << endl; check[f]=true; res[ind++]=f; } //for(int i=0; i<n-1; i++) cout << res[i] << " "; return res; }

Compilation message (stderr)

simurgh.cpp: In function 'std::vector<int> find_roads(int, std::vector<int>, std::vector<int>)':
simurgh.cpp:50:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<u.size(); i++){
               ~^~~~~~~~~
simurgh.cpp: In function 'int calc(int)':
simurgh.cpp:43:9: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
  return p;
         ^
#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...