제출 #730766

#제출 시각아이디문제언어결과실행 시간메모리
730766danikoynovSplit the Attractions (IOI19_split)C++14
18 / 100
100 ms14284 KiB
#include "split.h" #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 10; int deg[maxn], m, n; vector < int > graph[maxn]; int used[maxn]; vector < int > order; void stick(int v) { used[v] = 1; order.push_back(v); for (int u : graph[v]) { if (!used[u]) stick(u); } } void fill_component(int v, int sz) { used[v] = 1; order.push_back(v); for (int u : graph[v]) { if (order.size() == sz) break; if (!used[u]) fill_component(u, sz); } } vector<int> find_split(int N, int a, int b, int c, vector<int> p, vector<int> q) { n = N; m = p.size(); for (int i = 0; i < p.size(); i ++) { graph[p[i]].push_back(q[i]); graph[q[i]].push_back(p[i]); } if (a == 1) { vector < int > res(n, 0); fill_component(0, b); for (int v : order) res[v] = 2; int sp = 0; while(res[sp] != 0) sp ++; res[sp] = 1; for (int i = 0; i < n; i ++) if (res[i] == 0) res[i] = 3; return res; } bool deg2 = true; for (int i = 0; i < m; i ++) { if (graph[i].size() > 2) { deg2 = false; break; } } int leaf = 0; while(leaf < n && graph[leaf].size() != 1) leaf ++; if (leaf == n) leaf = 0; stick(leaf); if (deg2) { vector < int > res(n); for (int i = 0; i < n; i ++) { int v = order[i]; if (i < a) res[v] = 1; else if (i < a + b) res[v] = 2; else res[v] = 3; } return res; } else { vector < int > tmp; return tmp; } }

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

split.cpp: In function 'void fill_component(int, int)':
split.cpp:30:26: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   30 |         if (order.size() == sz)
      |             ~~~~~~~~~~~~~^~~~~
split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:40:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |     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...