Submission #1232233

#TimeUsernameProblemLanguageResultExecution timeMemory
1232233alterio가장 긴 여행 (IOI23_longesttrip)C++20
30 / 100
338 ms1104 KiB
#include "longesttrip.h"
#include <bits/stdc++.h>

using namespace std;

const int mxn = 256;

vector<int> ans, g[mxn];

bool visited[mxn];

void dfs(int cur, vector<int> path) {
    visited[cur] = 1;
    if (path.size() > ans.size()) {
        ans = path;
    }
    for (auto x : g[cur]) {
        if (!visited[x]) {
            path.push_back(x);
            dfs(x, path);
            path.pop_back();
        }
    }
}

vector<int> longest_trip(int N, int D) {
    for (int i = 0; i < N; i++) g[i].clear();
    memset(visited, 0, sizeof(visited));
    ans = {};
    for (int i = 0; i < N; i++) {
        for (int j = i + 1; j < N; j++) {
            if (are_connected({i}, {j})) {
                g[i].push_back(j);
                g[j].push_back(i);
            }
        }
    }
    for (int i = 0; i < N; i++) {
        if (!visited[i] && g[i].size() == 1) {
            dfs(i, {i});
        }
    }
    for (int i = 0; i < N; i++) {
        if (!visited[i]) {
            dfs(i, {i});
        }
    }
    return ans;
}
#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...