제출 #1370655

#제출 시각아이디문제언어결과실행 시간메모리
1370655leolin0214Longest Trip (IOI23_longesttrip)C++20
15 / 100
2 ms424 KiB
#include "longesttrip.h"

#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
#include <map>
#include <tuple>
#include <queue>

#define ff first
#define ss second

using namespace std;

bool are_connected(std::vector<int> A, std::vector<int> B);

std::vector<int> longest_trip(int N, int D) {

    int n = N;

    if (D == 3) {
        vector<int> p(n);
        iota(p.begin(), p.end(), 0);
        return p;
    }


    if (D == 2) {
        vector<bool> vis(n);
        vector<int> a, b;
        if (are_connected({0}, {1})) {
            a.push_back(0);
            b.push_back(1);
            vis[0] = vis[1] = 1;
        }else{
            a.push_back(0);
            b.push_back(2);
            vis[0] = vis[2] = 1;
        }

        for (int i=0; i<n; i++) {
            if (vis[i]) continue;
            vis[i] = true;
            are_connected({i}, {a.back()}) ? a.push_back(i) : b.push_back(i);
        }

        vector<int> ans;
        ans.insert(ans.end(), a.rbegin(), a.rend());
        ans.insert(ans.end(), b.begin(), b.end());

        return ans;
    }

    return {};
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…