Submission #1367949

#TimeUsernameProblemLanguageResultExecution timeMemory
1367949mannshah1211Thousands Islands (IOI22_islands)C++20
1.75 / 100
13 ms3100 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 (zz.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;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...