Submission #687394

# Submission time Handle Problem Language Result Execution time Memory
687394 2023-01-26T11:29:31 Z heeheeheehaaw Easter Eggs (info1cup17_eastereggs) C++17
0 / 100
1 ms 592 KB
#include <iostream>
#include <vector>
#include "grader.h"

using namespace std;

int hei[512 + 5], heimax = 0, nrnod;
int fr[512 + 5];
vector<int> muc[512 + 5];
vector<int> qv;

void reseteaza()
{
    heimax = 0;
    for(int i = 1; i <= 512; i++)
    {
        muc[i].clear();
        hei[i] = 0;
        fr[i] = 0;
    }
    qv.clear();

}

void dfsinit(int nod, int anc)
{
    hei[nod] = hei[anc] + 1;
    fr[hei[nod]]++;
    heimax = max(heimax, hei[nod]);
    for(auto it: muc[nod])
        if(it != anc)
            dfsinit(it, nod);
}

void dfs(int nod, int anc, int limita)
{
    qv.push_back(nod);
    for(auto it: muc[nod])
        if(it != anc && hei[it] <= limita)
            dfs(it, nod, limita);
}

void dfslvl(int nod, int anc, int limita, int nrlim)
{
    if(hei[nod] == limita)
        nrnod++;
    qv.push_back(nod);
    for(auto it: muc[nod])
        if(it != anc && hei[it] <= limita && nrnod < nrlim)
            dfs(it, nod, limita);
}

int findEgg(int N, vector<pair<int, int>> bridges)
{
    reseteaza();

    for(auto it: bridges)
    {
        muc[it.first].push_back(it.second);
        muc[it.second].push_back(it.first);
    }
    dfsinit(1, 1);
    int st = 1, dr = heimax;
    while(st < dr)
    {
        qv.clear();
        int mij = (st + dr) / 2;
        dfs(1, 1, mij);
        bool val = query(qv);
        if(val == true)
            dr = mij;
        else
            st = mij + 1;
    }

    int level = st;
    st = 1, dr = fr[level];
    while(st < dr)
    {
        qv.clear();
        int mij = (st + dr) / 2;
        nrnod = 0;
        dfslvl(1, 1, level, mij);
        bool val = query(qv);
        if(val == true)
            dr = mij;
        else
            st = mij + 1;
    }
    return st;
}
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 464 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 464 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 1 ms 592 KB Execution killed with signal 6
2 Halted 0 ms 0 KB -