Neal Wu-0000000000792f90
Neal Wu-0000000000792f90
#include <array>
#include <cassert>
#include <chrono>
#include <cmath>
#include <cstring>
#include <functional>
#include <iomanip>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <vector>
using namespace std;
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0200r0.html
template<class Fun> class y_combinator_result {
Fun fun_;
public:
template<class T> explicit y_combinator_result(T &&fun):
fun_(std::forward<T>(fun)) {}
template<class ...Args> decltype(auto) operator()(Args &&...args) { return
fun_(std::ref(*this), std::forward<Args>(args)...); }
};
template<class Fun> decltype(auto) y_combinator(Fun &&fun) { return
y_combinator_result<std::decay_t<Fun>>(std::forward<Fun>(fun)); }
while (b > 0) {
if (b & 1)
result = unsigned(uint64_t(result) * a % mod);
a = unsigned(uint64_t(a) * a % mod);
b >>= 1;
}
return result;
}
bool miller_rabin(unsigned n) {
if (n < 2)
return false;
// https://en.wikipedia.org/wiki/Miller
%E2%80%93Rabin_primality_test#Testing_against_small_sets_of_bases
for (unsigned a : {2, 7, 61}) {
unsigned x = mod_pow(a % n, d, n);
if (x <= 1 || x == n - 1)
continue;
if (x != n - 1)
return false;
}
return true;
}
int find_prime(int n) {
while (!miller_rabin(n))
n++;
return n;
}
if (evaluate(mid) <= Z)
low = mid;
else
high = mid - 1;
}
cout << "Case #" << test_case << ": " << evaluate(low) << '\n';
}
int main() {
int tests;
cin >> tests;