Submission #1332257

#TimeUsernameProblemLanguageResultExecution timeMemory
1332257antarbanikGap (APIO16_gap)C++20
0 / 100
44 ms6988 KiB
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
#define ll long long



/*




mn -> smallest a[i] >= s

mx -> largest a[i] <= t


s <= t



Output : max difference of 2 adjacent element










*/

// void MinMax(ll first, ll last, ll &mn, ll &mx){
//     int x, y; cin>>x>>y;
//     mn = x, mx = y;
// }


ll findGap(int T, int N){

    set<ll> s;


    ll first = -1, last = 1e18+1;


    while(true){

        ll mn, mx;
        MinMax(first+1, last-1, &mn, &mx);
        
        if(mn == -1 || mx == -1) break;
      
        s.insert(mn);
        s.insert(mx);

        first = mn, last = mx;
        if(s.size() == N) break;
    }
    vector<ll> v;
    for(auto e : s) v.push_back(e);

    ll ans = -1e18;
    // for(int i = 0;i<v.size();++i) cout<<v[i]<<" ";
    // cout<<endl;
    for(int i = 0;i<v.size() - 1; ++i) ans = max(ans, v[i+1] - v[i]);
    return ans;
}

// int main(){
//     cout<<findGap(1, 5);

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...