Submission #240167

#TimeUsernameProblemLanguageResultExecution timeMemory
240167b00n0rpGap (APIO16_gap)C++17
100 / 100
84 ms3332 KiB
#include <gap.h>
#include<bits/stdc++.h>
using namespace std;

#define int long long

int findGap(signed T,signed N){
    if(T == 1){
        int l = 0,r = (int)(1e18);
        vector<int> v;
        while(v.size() < N){
            int mn,mx;
            MinMax(l,r,&mn,&mx);
            v.push_back(mn);
            if(mn != mx) v.push_back(mx);
            l = mn+1;
            r = mx-1;
        }
        sort(v.begin(),v.end());
        int ans = 0;
        for(int i = 1; i < v.size(); i ++){
            ans = max(ans,v[i]-v[i-1]);
        }
        return ans;
    }
    else{
        int l = 0,r = (int)(1e18);
        int mn,mx;
        MinMax(l,r,&mn,&mx);
        int mans = (mx-mn+N-2)/(N-1);
        vector<int> v;
        v.push_back(mn);
        v.push_back(mx);
        l = mn+1;
        r = mx-1;
        while(l < r){
            MinMax(l,min(l+mans-1,r),&mn,&mx);
            l += mans;
            if(mn != -1) v.push_back(mn);
            if(mx != -1) v.push_back(mx);
        }
        sort(v.begin(),v.end());
        int ans = 0;
        for(int i = 1; i < v.size(); i ++){
            ans = max(ans,v[i]-v[i-1]);
        }
        return ans;
    }
}

Compilation message (stderr)

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:11:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while(v.size() < N){
               ~~~~~~~~~^~~
gap.cpp:21:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i = 1; i < v.size(); i ++){
                        ~~^~~~~~~~~~
gap.cpp:44:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i = 1; i < v.size(); i ++){
                        ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...