Submission #742296

#TimeUsernameProblemLanguageResultExecution timeMemory
742296Abrar_Al_SamitEaster Eggs (info1cup17_eastereggs)C++17
10 / 100
357 ms468 KiB
#include <bits/stdc++.h>
#include "grader.h"

using namespace std;

const int nax = 513;

bool del[nax];
int sub[nax], par[nax];
vector<int>g[nax];

void dfs(int v, int p = 0) {
    par[v] = p;
    sub[v] = 1;
    for(int u : g[v]) if(u!=p) {
        if(del[u]) continue;

        dfs(u, v);
        sub[v] += sub[u];
    }
}
vector<int>stk;
void dfs2(int v, int p) {
    stk.push_back(v);
    for(int u : g[v]) if(u!=p) {
        if(del[u]) continue;
        dfs2(u, v);
    }
}
int findEgg (int N, vector<pair<int,int>>bridges) {
    memset(del, 0, sizeof del);

    for(int i=1; i<=N; ++i) {
        g[i].clear();
    }
    for(int i=0; i<N-1; ++i) {
        auto [u, v] = bridges[i];
        g[u].push_back(v);
        g[v].push_back(u);
    }

    int cur_size = N;
    while(cur_size>1) {
        int best = 0, r, v;
        for(int i=1; i<=N; ++i) if(!del[i]) {
            dfs(i);

            for(int j=1; j<=N; ++j) if(!del[j]) {
                if(sub[j]<=cur_size/2 && best < sub[j]) {
                    best = sub[j];
                    r = i;
                    v = j;
                } 
            }
        }

        dfs(r);
        dfs2(v, par[v]);

        if(query(stk)) {
            for(int i=1; i<=N; ++i) {
                del[i] = 1;
            }
            cur_size = 0;
            for(int j : stk) {
                del[j] = 0;
                ++cur_size;
            }
        } else {
            for(int j : stk) {
                del[j] = 1;
                --cur_size;
            }
        }
        stk.clear();
    }

    for(int i=1; i<=N; ++i) if(!del[i]) {
        return i;
    }
    assert(0);
}

Compilation message (stderr)

eastereggs.cpp: In function 'int findEgg(int, std::vector<std::pair<int, int> >)':
eastereggs.cpp:58:13: warning: 'v' may be used uninitialized in this function [-Wmaybe-uninitialized]
   58 |         dfs2(v, par[v]);
      |         ~~~~^~~~~~~~~~~
eastereggs.cpp:57:12: warning: 'r' may be used uninitialized in this function [-Wmaybe-uninitialized]
   57 |         dfs(r);
      |         ~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...