제출 #920910

#제출 시각아이디문제언어결과실행 시간메모리
920910DON_FEaster Eggs (info1cup17_eastereggs)C++14
100 / 100
22 ms784 KiB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;
using ll = long long;
#define F first
#define S second

vector < vector < int > > g;
set < int > cur, sp;
vector < int > all, vis;
int p;

void dfs(int u){
   vis[u] = 1;
   if ((int) sp.size() == p){
      return;
   }
   all.push_back(u);
   if (cur.count(u)){
     sp.insert(u);
   }
   for (auto &i : g[u]){
     if (!vis[i]){
        dfs(i);
     }
   }
}

int findEgg (int n, vector < pair < int, int > > z){
    for (int i = 1; i <= n; ++i){
        cur.insert(i);
    }
    g = vector < vector < int > > (n + 1);
    vector < int > come(n + 10);
    int par = -1;
    for (int i = 0; i < n - 1; ++i){
        g[z[i].F].push_back(z[i].S);
        g[z[i].S].push_back(z[i].F);
    }
    while (cur.size() > 1){
        p = cur.size() / 2;
        vis = vector < int > (n + 1);
        dfs(*cur.begin());
        ll tmp = query(all);
        if (tmp){
           cur.clear();
           for (auto &i : sp){
              cur.insert(i);
           }
        }else{
           for (auto &i : sp){
             cur.erase(i);
           }
        }
        sp.clear();
        all.clear();
    }
    return *cur.begin();
}

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

eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:36:9: warning: unused variable 'par' [-Wunused-variable]
   36 |     int par = -1;
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...