#include "hack.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define rep(i,a,b) for(int i = a; i <= b; i++)
#define per(i,a,b) for(int i = a; i >= b; i--)
#define pb push_back
int closest_prime(int x) {
    per(j,x,1) {
        bool ok = 1;
        for(int i = 2; i*i <= j; ++i) {
            if(j%i==0) {
                ok=0;
                break;
            }
        }
        if(ok) return j;
    }
    return -1;
}
int hack(){
    vector<ll> vals;
    ll B = 31627, b = 31627;
    ll N = 1000000000;
    ll l = 1,r,x;
    while (1) {
        vals.clear();
        for(ll i = 1; i<=b; i++) {
            vals.pb(i);
        }
        for(ll i = N+1; i<=N+b*b+1; i+=b) {
            vals.pb(i);
        }
        x = collisions(vals);
        //cout << x << '\n';
        if(x>B) {
            l=1;
            break;
        }
        int L=b*b/(x+1),R=b*b/(x);
        if(x==1) R = N;
        //cout << L << ' ' << R << ' ' << x << ' ' << l << '\n';
        l += L;
        b = closest_prime(sqrt(b*b/2));
        if(R-L+1 <= 2*B) break;
    }
    
    //cout << "FOUND RANGE: " << l << ' ' << l+B << '\n';
    for(ll i = l ; i <= l+2*B; i++) {
        if(i==0)continue;
        x = collisions({2*i,i});
        if(x==1) {
            return i;
        }
    }
    for(ll i = B; i<= N; i+=B) {
        x = collisions({2*i,i});
        if(x==1) {
            return i;
        }
    }
    return -1;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |