제출 #1235628

#제출 시각아이디문제언어결과실행 시간메모리
1235628Ghulam_Junaid수천개의 섬 (IOI22_islands)C++20
1.75 / 100
1096 ms10600 KiB
#include <bits/stdc++.h>
#include "islands.h"
// #include "grader.cpp"
using namespace std;

const int N = 2e5 + 10;
int n, m, vis[N], mark[N];
vector<int> g[N], V;

bool dfs(int v, int day){
    if (v == 0) return 1;

    vis[v] = day;
    bool ans = 0;
    for (int e : g[v]){
        int u = V[e];
        if (vis[u] == day and !mark[u]) return 1;
        ans |= dfs(u, day);
    }
    mark[v] = 1;
    return ans;
}

variant<bool, vector<int>> find_journey(int N, int M, vector<int> U, vector<int> vv) {
    V = vv;
    n = N, m = M;
    for (int i = 0; i < m; i ++){
        g[U[i]].push_back(i);
    }
    int day = 0, ans = 0;
    for (int e : g[0]){
        memset(mark, 0, sizeof mark);
        day++;
        ans += dfs(V[e], day);
    }
    if (ans >= 2) return true;
    return false;
    
    if (N == 4) {
    return vector<int>({0, 1, 2, 4, 0, 3, 2, 1, 4, 3});
    }
    return false;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...