Submission #1362594

#TimeUsernameProblemLanguageResultExecution timeMemory
1362594activedeltorreThousands Islands (IOI22_islands)C++20
10.85 / 100
15 ms5392 KiB
#include "islands.h"

#include <cassert>
#include <cstdio>

#include <variant>
#include <vector>
#include <variant>
#include <vector>
#include <queue>
using namespace std;
vector<pair<int,int>>adj[2005];
pair<int,int>par[2005];
queue<int>qu;
std::variant<bool, std::vector<int>> find_journey(
                                      int N, int M, std::vector<int> U, std::vector<int> V)
{
    int n=N;
    vector<int>vec;
    for(int i=0;i<M;i++)
    {
        adj[U[i]].push_back({V[i],i});
    }
    if(adj[0].size()==2)
    {
        //vec=solve(0);
        //return vec;
        return true;
    }
    for(int i=0;i<=n;i++)
    {
        par[i]={-1,-1};
    }
    qu.push(0);
    while(qu.size())
    {
        auto curr=qu.front();
        qu.pop();
        for(auto k:adj[curr])
        {
            if(par[k.first]==make_pair(-1,-1))
            {
                par[k.first].first=curr;
                par[k.first].second=k.second;
                qu.push(k.first);
            }
        }
    }
    for(int i=0;i<N;i++)
    {
        if(adj[i].size()>=3 && par[i].first!=-1)
        {
            return true;
        }
    }
    return false;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...