Submission #40701

#TimeUsernameProblemLanguageResultExecution timeMemory
40701HassoonyGap (APIO16_gap)C++14
100 / 100
77 ms2284 KiB
#include <stdio.h>
#include <stdlib.h>
#include<bits/stdc++.h>
using namespace std;
#include "gap.h"

static void my_assert(int k){ if (!k) exit(1); }

static int subtask_num, N;
static long long A[100001];
static long long call_count;
typedef long long ll;
typedef double D;
const ll inf=(1ll<<61);
const ll mod=1e9+7;
const int MX=2e5+9;
ll findGap(int T, int n){
    if(T==1){
        ll ans=0;
        ll l,r,a[MX];
        l=0,r=n+1;
        for(int i=0;i<n;i++)a[i]=-inf;
        a[l]=-1;
        a[r]=1000000000000000009;
        for(int i=1;i<=(n+1)/2;i++){
            MinMax(a[l]+1,a[r]-1,&a[l+1],&a[r-1]);
            l++;r--;
        }
        for(int i=2;i<=n;i++)ans=max(ans,a[i]-a[i-1]);
        return ans;
    }
    else{
        ll l,r,add,last,mn,mx,ans=0;
        MinMax(-1,1000000000000000009,&l,&r);
        last=l;add=(r-l+1)/n;
        add++;
        for(ll x=l+1,y=l+add,i=0;i<n;i++,x+=add,y+=add){
            y=min(y,r-1);
            if(x>y)break;
            MinMax(x,y,&mn,&mx);
            if(mn==-1)continue;
            ans=max(ans,mn-last);
            last=mx;
        }
        ans=max(ans,r-last);
        return ans;
    }
}


Compilation message (stderr)

gap.cpp:7:13: warning: 'void my_assert(int)' defined but not used [-Wunused-function]
 static void my_assert(int k){ if (!k) exit(1); }
             ^
gap.cpp:9:12: warning: 'subtask_num' defined but not used [-Wunused-variable]
 static int subtask_num, N;
            ^
gap.cpp:9:25: warning: 'N' defined but not used [-Wunused-variable]
 static int subtask_num, N;
                         ^
gap.cpp:10:18: warning: 'A' defined but not used [-Wunused-variable]
 static long long A[100001];
                  ^
gap.cpp:11:18: warning: 'call_count' defined but not used [-Wunused-variable]
 static long long call_count;
                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...