제출 #95786

#제출 시각아이디문제언어결과실행 시간메모리
95786dantoh000Gap (APIO16_gap)C++14
100 / 100
153 ms3952 KiB
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;


long long findGap(int T, int n)
{
    if (T == 1){
        long long a[n];
        int cur = 0;
        MinMax(0,1000000000000000000,a,a+n-1);
        cur++;
        while (cur < (n+1)/2){
            //printf("%d ",cur);
            MinMax(a[cur-1]+1,a[n-cur]-1,a+cur,a+n-1-cur);
            cur++;
        }
        long long ans = 0;
        for (int i = 1; i < n; i++){
            //printf("%lld %lld, ",a[i],a[i-1]);
            ans = max(ans,a[i]-a[i-1]);
        }
        return ans;
    }
    else{
        long long lo, hi;
        MinMax(0ll,1000000000000000000ll,&lo,&hi);
        long long diff = (hi-lo)/(n-1) + ((hi-lo)%(n-1)!=0);
        //printf("%lld ",diff);
        vector<long long> v;
        v.push_back(lo);
        long long qs = lo+1, qe = lo+diff;
        long long a,b;
        for (int i = 0; i < n; i++){
            //printf("query %lld %lld\n",qs,qe);
            MinMax(qs,qe,&a,&b);
            qs += diff;
            qe += diff;
            if (a == -1 && b == -1) continue;
            v.push_back(a);
            if (b != a) v.push_back(b);

        }
        v.push_back(hi);
        long long ans = 0;
        for (int i = 1; i < v.size(); i++){
            ans = max(v[i]-v[i-1],ans);
        }
        return ans;
    }
}

컴파일 시 표준 에러 (stderr) 메시지

gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:46:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int i = 1; i < v.size(); i++){
                         ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...