| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 | 
|---|---|---|---|---|---|---|---|
| 1285786 | SmuggingSpun | Hack (APIO25_hack) | C++20 | 0 ms | 0 KiB | 
#include "hack.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int LIM = 1e9;
bool in_range(int l, int r){
	int sqr = sqrt(r - l + 1);
	vector<ll>p;
	for(int i = 1; i <= sqr; i++){
		p.push_back(i);
	}
	for(int i = 0; low + sqr * i <= r; i++){
		p.push_back(low + sqr * i);
	}
	sort(p.begin(), p.end());
	p.resize(unique(p.begin(), p.end()) - p.begin());
	if(p.back() != r){
		p.push_back(r);
	}
	return collisions(p) > 0;
}
int hack(){
	int low = 2, high = LIM, ans = 1;
	while(low <= high){
		int mid = (low + high) >> 1, sqr = sqrt(mid - low + 1);
		if(!in_range(low, mid)){
			low = (ans = mid) + 1;
		}
		else{
			high = mid - 1;
		}
	}
	return ans;
}
