제출 #1147791

#제출 시각아이디문제언어결과실행 시간메모리
1147791njoopGap (APIO16_gap)C++17
30 / 100
2110 ms589824 KiB
#include "gap.h"
#include <bits/stdc++.h>
using namespace std;

long long mx, mn, l, r;
vector<long long> arr;

long long findAns() {
    long long ans = 0;
    sort(arr.begin(), arr.end());
    for(int i=0; i<arr.size()-1; i++) {
        ans = max(ans, arr[i+1]-arr[i]);
    }
    return ans;
}

long long findGap(int T, int N) {
    l=0; r=1e18;
    if(T == 1) {
        for(int i=1; i<=N/2; i++) {
            MinMax(l, r, &mn, &mx);
            if(mn == -1 || mx == -1) {
                break;
            }
            arr.push_back(mn);
            arr.push_back(mx);
            l = mn+1;
            r = mx-1;
        }
        if(N%2 == 1) {
            MinMax(l, r, &mn, &mx);
            arr.push_back(mn);
        }
        return findAns();
    }
    MinMax(l, r, &mn, &mx);
    l = mn;
    r = mx;
    arr.push_back(mn);
    arr.push_back(mx);
    long long in = (r-l+N+1)/(N+1)+1;
    if((r-l)/in > 1000000) return 0; 
    for(int j=l+1; j<r; j+=in) {
        MinMax(j, j+in-1, &mn, &mx);
        if(mn != -1 && mx != -1) {
            arr.push_back(mn);
            arr.push_back(mx);
        }
    }
    return findAns();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...