Submission #742915

#TimeUsernameProblemLanguageResultExecution timeMemory
742915vjudge1Gap (APIO16_gap)C++17
100 / 100
61 ms3264 KiB
#include <bits/stdc++.h>

#include "gap.h"

using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define ent "\n"

const int maxn = 1e6 + 100;
const ll INF = (1ll<<61);
const int MOD = 1e9 + 7;
const int inf = (1<<30);
const int maxl = 20;
const int P = 31;

ll findGap(int t, int n){
    if(t == 1){
        ll l = -1;
        ll r = (ll)1e18 + 1;
        ll ans = 0;
        int cnt = (n+1)/2;
        while(cnt > 0){
            cnt--;
            ll tl, tr;
            if(l + 1 > r - 1) break;
            MinMax(l + 1, r - 1, &tl, &tr);
            if(tl == -1) break;
            if(l != -1){
                ans = max(ans, tl - l);
                ans = max(ans, r - tr);
            }
            l = tl;
            r = tr;
        }
        if(l < r) ans = max(ans, r - l);
        return ans;
    } else{
        ll mn, mx, ans = 0;
        MinMax(0, 1e18, &mn, &mx);
        ll d = (mx - mn) / (n - 1);
        ll x = (mx - mn) % (n - 1);
        ll p = -1;
        vector<ll> v;
        v.push_back(mx);
        v.push_back(mn);
        for(ll i = mn+1; i <= mx;){
            ll r = i + d + (x-- > 0);
            ll tl, tr; MinMax(i, r - 1, &tl, &tr);
            if(tr != -1){
                v.push_back(tl);
                v.push_back(tr);
            }
            i = r;
        }
        sort(v.begin(), v.end());
        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 'll findGap(int, int)':
gap.cpp:58:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   58 |         for(int i = 1; i < v.size(); i++) ans = max(ans, v[i] - v[i-1]);
      |                        ~~^~~~~~~~~~
gap.cpp:44:12: warning: unused variable 'p' [-Wunused-variable]
   44 |         ll p = -1;
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...