제출 #1150063

#제출 시각아이디문제언어결과실행 시간메모리
1150063dostsEaster Eggs (info1cup17_eastereggs)C++20
100 / 100
8 ms496 KiB
#include "grader.h" #include <bits/stdc++.h> #pragma GCC target("avx2") #pragma GCC optimize("O3,unroll-loops") using namespace std; //#define int long long #define pii pair<int,int> #define ff first #define ss second #define sp << " " << #define all(cont) cont.begin(),cont.end() #define vi vector<int> using namespace std; vi edges[513],possible(513,0); vi order; void dfs(int node,int p) { order.push_back(node); for (auto it : edges[node]) { if (it == p) continue; dfs(it,node); } } int findEgg (int N, vector <pair<int,int>> bridges) { order.clear(); for (int i=1;i<=N;i++) edges[i].clear(); for (int i=1;i<=N;i++) possible[i] = 1; for (auto it : bridges) { edges[it.ff].push_back(it.ss); edges[it.ss].push_back(it.ff); } dfs(1,1); int pos = N; while (pos > 1) { vi ask; int cnt = 0; for (int i=1;i<=N;i++) { if (possible[order[i-1]]) cnt++; ask.push_back(order[i-1]); if (cnt == pos/2) break; } int b = query(ask); if (!b) { for (auto it : ask) if (possible[it]) possible[it] = 0,pos--; } else { cnt = 0; for (int i=1;i<=N;i++) { if (possible[order[i-1]]) cnt++; if (cnt <= pos/2) continue; possible[order[i-1]] = 0; } pos-=pos/2; } } for (int i=1;i<=N;i++) if (possible[i]) return i; }

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

eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:60:1: warning: control reaches end of non-void function [-Wreturn-type]
   60 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...