| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1367945 | mannshah1211 | 수천개의 섬 (IOI22_islands) | C++20 | 0 ms | 0 KiB |
#include "islands.h"
#include <bits/stdc++.h>
#include <variant>
#include <vector>
using namespace std;
variant<bool, vector<int>> find_journey(int n, int m, vector<int> u, vector<int> v) {
int cnt = 0;
for (int i = 0; i < m; i++) {
if (u[i] == 0) {
cnt++;
}
}
if (cnt >= 2) {
vector<int> ans;
vector<int> zz;
for (int i = 0; i < m; i++) {
if (u[i] == 0) {
zz.push_back(i);
}
}
ans.push_back(zz[0]);
ans.push_back(zz[0] ^ 1);
ans.push_back(zz[1]);
ans.push_back(zz[1] ^ 1);
ans.push_back(zz[0] ^ 1);
ans.push_back(zz[0]);
ans.push_back(zz[1] ^ 1);
ans.push_back(zz[1]);
return ans;
}
if (cnt == 1) {
int vv = -1;
for (int i = 0; i < m; i++) {
if (u[i] == 0) {
vv = i;
break;
}
}
vector<int> zz;
for (int i = 0; i < m; i++) {
if (u[i] == v[vv] && v[i] != 0) {
zz.push_back(i);
}
}
vector<int> ans;
if (cri.size() >= 2) {
ans.push_back(vv);
ans.push_back(zz[0]);
ans.push_back(zz[0] ^ 1);
ans.push_back(zz[1]);
ans.push_back(zz[1] ^ 1);
ans.push_back(zz[0] ^ 1);
ans.push_back(zz[0]);
ans.push_back(zz[1] ^ 1);
ans.push_back(zz[1]);
ans.push_back(vv);
return ans;
}
return false;
}
return false;
}