#include "hack.h"
#include "bits/stdc++.h"
#define pb push_back
#define dbg(X) cerr<<#X<<": "<<X<<endl
#define si(a_) (ll)(a_.size())
#define fi first
#define all(a_) a_.begin(),a_.end()
#define sc second
#define popb pop_back
#define ceri(a_,l_,r_) {for(ll i_ = l_;i_<=r_;i_++) cerr<<a_[i_]<< " ";cerr<<endl;}
using namespace std;
using ll = long long;
using pll = pair<ll,ll>;
ll n;
mt19937_64 rng(time(0));
ll rnd(ll l,ll r){return uniform_int_distribution<ll>(l,r)(rng);}
map<ll,bool> tu;
vector<ll> v,w;
ll mx = 1000000000;
/**
1
1000000000
**/
ll tres = 40000;
ll m = 31624;
vector<ll> con(vector<ll> a,vector<ll> b){
    while(si(b)){
        a.pb(b.back());
        b.popb();
    }
    return a;
}
pll reshi(vector<ll> vl,vector<ll> vr){
    if(si(vl)==1&&si(vr)==1) return {vl[0],vr[0]};
    vector<ll> vll,vlr;
    vector<ll> vrl,vrr;
    for(ll i = 0;i<si(vl);i++){
        if(i<si(vl)/2) vll.pb(vl[i]);
        else vlr.pb(vl[i]);
    }
    for(ll i = 0;i<si(vr);i++){
        if(i<si(vr)/2) vrl.pb(vr[i]);
        else vrr.pb(vr[i]);
    }
    if(collisions(con(vll,vrl))) return reshi(vll,vrl);
    if(collisions(con(vll,vrr))) return reshi(vll,vrr);
    if(collisions(con(vlr,vrl))) return reshi(vlr,vrl);
    return reshi(vlr,vrr);
}
vector<ll> vl,vr;
int hack(){
    ll c = -1;
    if(collisions({1,2})) return 1;
    //for(ll i = 2;i<=m+1;i++) if(collisions({1,i})) return i-1;
    ll mxv = 100*mx;
    vector<ll> pw2;
    pw2.pb(1);
    while(pw2.back()<mx) pw2.pb(pw2.back()*2);
    for(ll t = 0;;t++){
        vl.clear(); vr.clear();
        for(ll i = 1;i<=m;i++) vl.pb(i);
        for(ll i = 1;mx/2+i*m<=mx;i++) vr.pb(mx/2+i*m);
        ll cnt = collisions(con(vl,vr));
        //dbg(cnt);
        if(cnt==0) continue;
        //dbg(t);
       // dbg(cnt);
       //dbg(si(vl));
      // dbg(si(vr));
        pll p = reshi(vl,vr);
        c = abs(p.fi-p.sc);
        break;
    }
    //dbg(c);
    ll ans = c;
    vector<ll> d;
    for(ll i = 2;i*i<=c;i++){
        if(c%i==0){
            //dbg(i);
            d.pb(i);
            if(i*i!=c){
                //dbg(c/i);
                d.pb(c/i);
            }
        }
    }
    d.pb(c);
    sort(all(d));
    for(ll x : d){
        if(collisions({1,x+1})) return x;
    lol:;
    }
    return ans ;
}
| # | 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... |