제출 #1003715

#제출 시각아이디문제언어결과실행 시간메모리
1003715MarwenElarbiGap (APIO16_gap)C++17
34.63 / 100
32 ms1236 KiB
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#define fi first
#define se second
#define ll long long
#define pb push_back
#define ii pair<int,int>
const int nax=2e3+5;
void MinMax(long long, long long, long long*, long long*);
long long findGap(int T, int N)
{
    long long lst,mx;
    MinMax(0,1e18,&lst,&mx);
    if(N==2){
        return mx-lst;
    }else if(N==3){
      long long ans=mx-lst;
      long long a;
      MinMax(lst+1,1e18,&a,&mx);
      ans=max(a-lst,mx-a);
      return ans;
    }else if(N==4){
      long long ans;
      long long a,b;
      MinMax(lst+1,mx-1,&a,&b);
      ans=max(a-lst,max(b-a,mx-b));
      return ans;
    }
    long long ans=1;
    while(mx!=lst){
        long long a,b;
        MinMax(lst+1,lst+ans,&a,&b);
        if(a==-1){
            while(a==-1){
                ans*=2;
                MinMax(lst+1,lst+ans,&a,&b);
            }
            ans=a-lst;
            lst=b;
        }else{
            lst=b;
        }
    }
    return ans;
}

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