#include "islands.h"
#include <bits/stdc++.h>
using namespace std;
using un = int;
using vuc = vector<un>;
using vol = vector<bool>;
#define REP(i, a, b) for (un i = (un)a; i < (un)b; i++)
#define FEAC(i, a) for (auto&& i : a)
#define vec vector
#define ALL(x) (x).begin(), (x).end()
un N, M;
vuc U, V;
variant<bool, vuc> subtask1(){
un A = -1;
un B = -1;
un C = -1;
REP(i, 0, M){
if (U[i] == 0){
if (A == -1) A = i;
else if (B == -1) B = i;
}
else{
if (C == -1) C = i;
}
}
if (min({A, B, C}) == -1) return false;
else return vuc({A, C, B, A, C, B});
}
variant<bool, vuc> find_journey(un _N, un _M, vuc _U, vuc _V) {
N=_N; M=_M; U=_U; V=_V;
if (N == 2) return subtask1();
vec<vuc> spoje(3, vuc(3, -1));
REP(i, 0, N){
if ((U[i] < 3) and (V[i] < 3)){
spoje[U[i]][V[i]] = i;
}
}
bool sub2 = true;
REP(i, 0, 3) REP(j, 0, 3) if (spoje[i][j] == -1) sub2 = false;
if (sub2){
vuc ret = {spoje[0][1], spoje[1][2], spoje[2][0], spoje[0][2], spoje[2][1], spoje[1][0]};
for (un i = 2; i>= 0; i--) ret.push_back(ret[i]);
for (un i = 5; i>= 3; i--) ret.push_back(ret[i]);
return ret;
}
return false;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |