Submission #1220193

#TimeUsernameProblemLanguageResultExecution timeMemory
1220193TriseedotHack (APIO25_hack)C++20
78.10 / 100
122 ms1312 KiB
#include "hack.h"
#include <bits/stdc++.h>
using namespace std;

using ll = long long;
#define all(v) v.begin(), v.end()

bool check(int l, int r) {
    int d = r - l;
    if (d == 0) return false;
    if (d == 1) return collisions({1, l + 1}) > 0;
    int b = sqrt(d);
    vector<ll> x(b);
    iota(all(x), 1ll);

    for (int i = l + b; i <= r; i += b) {
        x.push_back(i);
    }
    if (x.back() != r) x.push_back(r);

    return collisions(x) > 0;
}

int hack() {
    int l = 2, r = 1e9 + 1;
    while (l + 1 < r) {
        int m = (l + r) / 2;
        if (check(l, m)) {
            r = m;
        }
        else {
            l = m;
        }
    }
    return l;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...