제출 #836290

#제출 시각아이디문제언어결과실행 시간메모리
836290SamAnd수천개의 섬 (IOI22_islands)C++17
0 / 100
1 ms724 KiB
#include "islands.h"
#include <variant>
#include <bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define m_p make_pair
#define all(x) (x).begin(),(x).end()
#define sz(x) ((int)(x).size())
typedef long long ll;
const int N = 1003, M = 200005;

vector<pair<int, int> > g[N];

bool c[N];
int p[N];
int pi[N];
vector<int> ans;
bool dfs(int x)
{
    c[x] = true;
    for (int i = 0; i < g[x].size(); ++i)
    {
        int h = g[x][i].fi;
        int hi = g[x][i].se;
        if (hi / 2 == pi[x] / 2)
            continue;
        if (!c[h])
        {
            p[h] = x;
            pi[h] = hi;
            if (dfs(h))
                return true;
        }
        else
        {
            return true;
        }
    }
}

std::variant<bool, std::vector<int> > find_journey(int N, int M, std::vector<int> U, std::vector<int> V)
{
    for (int i = 0; i < M; ++i)
    {
        g[U[i]].push_back(m_p(V[i], i));
    }

    p[0] = -3;
    pi[0] = -3;
    if (!dfs(0))
        return false;
    return ans;
}

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

islands.cpp: In function 'bool dfs(int)':
islands.cpp:22:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |     for (int i = 0; i < g[x].size(); ++i)
      |                     ~~^~~~~~~~~~~~~
islands.cpp:40:1: warning: control reaches end of non-void function [-Wreturn-type]
   40 | }
      | ^
#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...