Submission #61234

#TimeUsernameProblemLanguageResultExecution timeMemory
61234istleminGap (APIO16_gap)C++14
70 / 100
100 ms3060 KiB
#include "gap.h"
#include<bits/stdc++.h>

using namespace std;

#define rep(i,a,b) for(int i = a; i<int(b);++i)
#define all(v) v.begin(),v.end()
#define sz(v) v.size()
#define trav(a,c) for(auto a: c)

typedef long long ll;
typedef vector<ll> vi;
typedef pair<ll,ll> pii;

void ask(ll l,ll r, ll *mn,ll *mx){
    ll ansMn,ansMx;
    MinMax(l,r-1,&ansMn,&ansMx);
    (*mn) = ansMn;
	(*mx) = ansMx;
}

long long findGap(int T, int N) {
    ll t = T;
    ll n = N;

        ll dn,up;
        ask(-1,2e18,&dn,&up);
        vi a;
		a.push_back(dn);
		a.push_back(up);
        ++dn;


        vi endPoints;
        endPoints.push_back(dn);

        ll numGroups = n/2+1;



        rep(i,0,numGroups){
            if(i<(up-dn)%numGroups)
				endPoints.push_back(endPoints[endPoints.size()-1]+(up-dn)/numGroups+1);
			else
				endPoints.push_back(endPoints[endPoints.size()-1]+(up-dn)/numGroups);
        }

        rep(i,0,numGroups){
            ll l = endPoints[i];
            ll r = endPoints[i+1];
            ll mn,mx;
            ask(l,r,&mn,&mx);
            if(mn==-1) continue;
            a.push_back(mn);
            a.push_back(mx);
        }

        sort(all(a));
        ll mxGap = 0;
        rep(i,0,a.size()-1) mxGap = max(mxGap,a[i+1]-a[i]);
        //cout<<"yes"<<endl;
        return mxGap;

	return 0;
}

Compilation message (stderr)

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:23:8: warning: unused variable 't' [-Wunused-variable]
     ll t = T;
        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...