Submission #1213645

#TimeUsernameProblemLanguageResultExecution timeMemory
1213645avighnaHack (APIO25_hack)C++20
0 / 100
3 ms956 KiB
#include <bits/stdc++.h>

long long collisions(std::vector<long long> x);

int hack() {
  int l = 5e8, r = 1e9;
  while (l < r) {
    int m = std::midpoint(l, r);
    int b = std::sqrt(m - l + 1);
    std::vector<long long> q;
    for (int i = 1; i <= b; ++i) {
      q.push_back(i);
    }
    for (int i = l + b; i <= m; i += b) {
      q.push_back(i);
    }
    if (m + 1 > b) {
      q.push_back(m + 1);
    }
    if (collisions(q)) {
      r = m;
    } else {
      l = m + 1;
    }
  }
  std::vector<int> div;
  for (int i = 1; i * i <= l; ++i) {
    if (l % i == 0) {
      div.push_back(i);
      if (i * i != l) {
        div.push_back(l / i);
      }
    }
  }
  std::vector<int> primes;
  for (int i = 0; i < div.size(); ++i) {
    bool prime = true;
    for (auto &p : primes) {
      if (div[i] % p == 0) {
        prime = false;
      }
    }
    if (prime) {
      primes.push_back(div[i]);
    }
  }
  for (int prev_l = -1; l != prev_l;) {
    for (auto &p : primes) {
      if ((l / p) * p == l and collisions({1, l / p + 1})) {
        prev_l = l;
        l /= p;
      }
    }
  }
  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...