# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
924434 | 2024-02-09T03:45:09 Z | Nurislam | Easter Eggs (info1cup17_eastereggs) | C++14 | 1 ms | 512 KB |
#include <bits/stdc++.h> #include "grader.h" //~ #include "grader.cpp" using namespace std; #define pb push_back int ans = 0; vector<vector<int> > g; vector<int> us; int m, ctr; int dcnt(int pos, int pre){ int s = 1; for(auto to:g[pos]){ if(us[to] || to == pre)continue; s+=dcnt(to, pos); } return s; } int dct(int pos, int pre){ bool ok = 1; int s = 1; for(auto to:g[pos]){ if(us[to] || to == pre)continue; int sn = 0; sn = dcnt(to, pos); if(sn > m/2)ok = 0; s+=sn; } if(s < m/2)ok = 0; if(ok)ctr = pos; return s; } vector<int> re; void dfs(int pos, int pre){ re.pb(pos); for(int to:g[pos]){ if(us[to] || to == pre)continue; dfs(to, pos); } } void ctrdec(int pos){ m = dcnt(pos, -1); m = dct(pos, -1); us[ctr] = 1; ans = ctr; for(auto to:g[ctr]){ if(us[to])continue; re.clear(); dfs(to, -1); if(query(re) == 0)continue; ctrdec(to); } } int findEgg (int n, vector < pair < int, int > > way) { g.resize(n+1); us.resize(n+1); for(int i = 1; i <= n; i++){ us[i] = 0; g[i].clear(); } for(auto [u, v]: way){ g[u].pb(v); g[v].pb(u); } ctrdec(1); return ans; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 1 ms | 436 KB | Execution killed with signal 6 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 512 KB | The found island is incorrect |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | The found island is incorrect |
2 | Halted | 0 ms | 0 KB | - |