제출 #1173651

#제출 시각아이디문제언어결과실행 시간메모리
1173651SpyrosAlivThousands Islands (IOI22_islands)C++20
10 / 100
19 ms6004 KiB
#include <bits/stdc++.h>
using namespace std;

int n, m;
vector<int> u, v;

variant<bool, vector<int>> find_journey(int N, int M, vector<int> U, vector<int> V) {
    n = N;
    m = M;
    u = U;
    v = V;
    if (n == 2) {
        int cnt1 = 0, cnt2 = 0;
        vector<int> a, b;
        for (int i = 0; i < m; i++) {
            if (u[i] == 0) {
                cnt1++;
                a.push_back(i);
            }
            else {
                cnt2++;
                b.push_back(i);
            }
        }
        if (cnt1 < 2 || cnt2 < 1) return false;
        vector<int> ans = {a[0], b[0], a[1], a[0], b[0], a[1]};
        return ans;
    }
    else {
        vector<int> goB, goC, b, c;
        for (int i = 0; i < m; i++) {
            if (u[i] == 0) {
                if (v[i] == 1) goB.push_back(i);
                else if (v[i] == 2) goC.push_back(i);
            }
            else if (u[i] == 1 && v[i] == 0) b.push_back(i);
            else if (u[i] == 2 && v[i] == 0) c.push_back(i);
        }
        vector<int> ans = {goB[0], b[0], goC[0], c[0], b[0], goB[0], c[0], goC[0]};
        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...