제출 #1022651

#제출 시각아이디문제언어결과실행 시간메모리
1022651HappyCapybaraSplit the Attractions (IOI19_split)C++17
11 / 100
51 ms11852 KiB
#include "split.h" #include<bits/stdc++.h> using namespace std; vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q){ int m = p.size(); vector<vector<int>> g(n); for (int i=0; i<m; i++){ g[p[i]].push_back(q[i]); g[q[i]].push_back(p[i]); } vector<int> res(n, 3); if (a > 1){ int now; for (int i=0; i<n; i++){ if (g[i].size() == 1) now = i; } int i = 0; int prev = -1; while (i < a+b){ if (i < a) res[now] = 1; else res[now] = 2; i++; if (g[now][0] != prev){ prev = now; now = g[prev][0]; } else { if (g[now].size() == 1) break; prev = now; now = g[prev][1]; } } return res; } vector<bool> seen(n, false); int i = 0; queue<int> qu; qu.push(0); while (i<b){ int cur = qu.front(); qu.pop(); if (seen[cur]) continue; seen[cur] = true; res[cur] = 2; i++; for (int next : g[cur]) qu.push(next); } for (int j=0; j<n; j++){ if (res[j] == 3){ res[j] = 1; break; } } return res; }

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

split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:21:22: warning: 'now' may be used uninitialized in this function [-Wmaybe-uninitialized]
   21 |    if (i < a) res[now] = 1;
      |                      ^
#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...