제출 #49161

#제출 시각아이디문제언어결과실행 시간메모리
49161StainFizzySimurgh (IOI17_simurgh)C++14
13 / 100
1052 ms748 KiB
#include "simurgh.h" #include <bits/stdc++.h> #define N 10 using namespace std; int parent[N], Rank[N], mm, nn; int Find(int x) { if(parent[x] == x) return x; return parent[x] = Find(parent[x]); } void join(int a, int b) { a = Find(a), b = Find(b); if(a == b) return; if(Rank[a] > Rank[b]) parent[b] = a; else if(Rank[a] < Rank[b]) parent[a] = b; else parent[a] = b, Rank[b] ++; } std::vector<int> find_roads(int n_, std::vector<int> u, std::vector<int> v) { mm = u.size(), nn = n_; for(int mask = 0; mask < (1<<mm); mask ++) { vector<int> roads; for(int i = 0; i < mm; i++) if(mask & (1<<i)) roads.push_back(i); for(int i = 0; i < nn; i++) parent[i] = i, Rank[i] = 0; set<int> spower; for(auto x: roads) { join(u[x], v[x]); } for(int i = 0; i < nn; i++) spower.insert(Find(i)); if(spower.size() == 1 && roads.size() == nn - 1) { int q = count_common_roads(roads); if(q == nn - 1) { return roads; } } } }

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

simurgh.cpp: In function 'std::vector<int> find_roads(int, std::vector<int>, std::vector<int>)':
simurgh.cpp:49:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(spower.size() == 1 && roads.size() == nn - 1)
                            ~~~~~~~~~~~~~^~~~~~~~~
simurgh.cpp:59:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#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...