제출 #520985

#제출 시각아이디문제언어결과실행 시간메모리
520985nadorbenedekSplit the Attractions (IOI19_split)C++14
18 / 100
90 ms12256 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){ if(noch == 0){ return; } res[v] = id; noch--; 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; }

컴파일 시 표준 에러 (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...