Submission #516705

#TimeUsernameProblemLanguageResultExecution timeMemory
516705KoDLutrija (COCI19_lutrija)C++17
70 / 70
152 ms324 KiB
#include <bits/stdc++.h> using std::vector; using std::array; using std::pair; using std::tuple; using i64 = std::int64_t; constexpr bool is_prime(const i64 x) { if (x <= 1) { return false; } for (i64 i = 2; i * i <= x; ++i) { if (x % i == 0) { return false; } } return true; } template <class T> void println(const T& x) { std::cout << x << '\n'; } template <class T, class... Arg> void println(const T& x, const Arg&... args) { std::cout << x << ' '; println(args...); } int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(nullptr); i64 A, B; std::cin >> A >> B; if (is_prime(std::abs(A - B))) { println(2); println(A, B); return 0; } const bool x = is_prime(A + 2), y = is_prime(A - 2); const bool z = is_prime(B + 2), w = is_prime(B - 2); if (x and z) { println(5); println(A, A + 2, 2, B + 2, B); return 0; } if (x and w) { println(4); println(A, A + 2, 2, B); return 0; } if (y and z) { println(4); println(A, 2, B + 2, B); return 0; } if (y and w) { println(3); println(A, 2, B); return 0; } if (A == 2 and z) { println(3); println(2, B + 2, B); return 0; } if (B == 2 and x) { println(3); println(A, A + 2, 2); return 0; } std::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...