Submission #520981

#TimeUsernameProblemLanguageResultExecution timeMemory
520981nadorbenedekSplit the Attractions (IOI19_split)C++14
0 / 100
58 ms10540 KiB
#include "split.h" #include <bits/stdc++.h> using namespace std; vector<vector<int> > adj; void dfs(int v, vector<int> &res, int &noch, int id){ res[v] = id; noch--; if(noch == 0){ return; } for(int edge : adj[v]){ if(!res[edge]){ dfs(edge, res, noch, id); } } } vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) { vector<int> res(n, 0); vector<pair<int, int> > z = {{a, 1}, {b, 2}, {c, 3}}; sort(z.begin(), z.end()); adj.resize(n); for(int i = 0; i < p.size(); i++){ adj[p[i]].push_back(q[i]); adj[q[i]].push_back(p[i]); } int root = 0; for(int i = 0; i < n; i++){ if(adj[i].size() == 1){ root = i; break; } } dfs(root, res, z[1].first, z[1].second); for(int i = 0; i < n; i++){ if(res[i] == 0){ root = i; break; } } dfs(root, res, z[0].first, z[0].second); for(int i = 0; i < n; i++){ if(res[i] == 0){ res[i] = z[2].second; } } return res; }

Compilation message (stderr)

split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:25:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |  for(int i = 0; i < p.size(); i++){
      |                 ~~^~~~~~~~~~
#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...