Submission #1344688

#TimeUsernameProblemLanguageResultExecution timeMemory
1344688vuqar_bazarov1Lutrija (COCI19_lutrija)C++20
0 / 70
0 ms444 KiB
/*
* * author: attacker
* * created: 31.03.2026 14:09:29
*/
#include <bits/stdc++.h>

using namespace std;

#ifdef LOCAL
#include "algo/debug.h"
#else
#define debug(...) 1
#endif

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

#define bpc __builtin_popcount
#define size(v) (int)(v.size())

int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  int64_t a, b;
  cin >> a >> b;
  vector<bool> okey(1001, true);
  okey[1] = okey[0] = false;
  for (int64_t i = 2; i * i <= int64_t(1000); i++) {
    for (int j = i; j <= int64_t(1000); j += i) {
      okey[j] = false;
    }
  }
  vector<int64_t> primes;
  for (int64_t i = 2; i <= 1000; i++) {
    if (okey[i]) {
      primes.push_back(i);
    }
  }
  vector<int64_t> cur;
  cur.push_back(a);
  vector<int64_t> res;
  for (int64_t& val : primes) {
    if (okey[abs(val - b)]) {
      int id = size(cur) - 1;
      while (id >= 0 && !okey[abs(cur[id] - val)]) --id;
      if (id < 0) {
        continue;
      } else {
        for (int i = 0; i <= id; i++) {
          res.push_back(cur[i]);
        }
        res.push_back(val);
        res.push_back(b);
        break;
      }
    } else {
      int id = size(cur) - 1;
      while (id >= 0 && !okey[abs(cur[id] - val)]) --id;
      if (id >= 0) {
        cur.insert(cur.begin() + id + 1, val);
      }
    }
  }
  if (!res.empty()) {
    cout << size(res) << '\n';
    for (int i = 0; i < size(res); i++) {
      cout << res[i] << " \n"[i == size(res) - 1];
    }
  } else {
    cout << -1 << '\n';
  }
  return 0;
}
#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...
#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...