제출 #61613

#제출 시각아이디문제언어결과실행 시간메모리
61613Flying_dragon_02Easter Eggs (info1cup17_eastereggs)C++17
0 / 100
4 ms688 KiB
#include <bits/stdc++.h> #include "grader.h" using namespace std; #define fi first #define se second #define pb push_back #define mp make_pair typedef pair<int, int> ii; vector<int> graph[600]; int child[600], m, root, par[600], ok = 0; bool vis1[600], vis2[600]; vector<int> ask; void solve(int u, int p){ vis2[u] = 1; ask.pb(u); for(int i = 0; i < graph[u].size(); i++){ int v = graph[u][i]; if(v == p) continue; solve(v, u); } } void dfs(int u, int p){ vis1[u] = 1; child[u] = 1; for(int i = 0; i < graph[u].size(); i++){ int v = graph[u][i]; if(v == p) continue; if(vis2[v] == 0 && vis1[v] == 0){ dfs(v, u); par[v] = u; child[u] += child[v]; } } if(child[u] == m / 2 && ok == 0){ solve(u, par[u]); ok = 1; } } int findEgg(int N, vector<ii> bridges){ for(int i = 1; i <= N; i++) graph[i].clear(); for(int i = 0; i < bridges.size(); i++){ int u = bridges[i].fi, v = bridges[i].se; graph[u].pb(v); graph[v].pb(u); } memset(vis2, 0, sizeof(vis2)); m = N; //return 1; while(m != 1){ ask.clear(); ok = 0; for(int i = 1; i <= N; i++){ if(vis2[i] == 0){ memset(vis1, 0, sizeof(vis1)); dfs(i, i); if(ask.size() > 0){ if(query(ask) == 0){ bool vis3[N]; memset(vis3, 0, sizeof(vis3)); for(int j = 0; j < ask.size(); j++){ vis3[ask[j]] = 1; vis2[ask[j]] = 0; } for(int j = 1; j <= N; j++){ if(vis3[j] == 0 && vis2[j] == 0) vis2[j] = 1; } break; } else break; } } } m -= m / 2; } ask.clear(); for(int i = 1; i <= N; i++){ if(vis2[i] == 0) return i; } }

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

eastereggs.cpp: In function 'void solve(int, int)':
eastereggs.cpp:20:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < graph[u].size(); i++){
                    ~~^~~~~~~~~~~~~~~~~
eastereggs.cpp: In function 'void dfs(int, int)':
eastereggs.cpp:30:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < graph[u].size(); i++){
                    ~~^~~~~~~~~~~~~~~~~
eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:48:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < bridges.size(); i++){
                    ~~^~~~~~~~~~~~~~~~
eastereggs.cpp:66:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                         for(int j = 0; j < ask.size(); j++){
                                        ~~^~~~~~~~~~~~
eastereggs.cpp:88: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...