제출 #32209

#제출 시각아이디문제언어결과실행 시간메모리
32209dongwon0427Gap (APIO16_gap)C++98
100 / 100
106 ms8304 KiB
#include "gap.h"
#define MAX 1000000000000000000
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll findGap(int T, int N)
{
    if(T==1) {
        ll a=0,b=MAX,c,d;
        vector<ll> v;
        for(int i=1;i<=(N+1)/2;i++) {
            if(a>b) break;
            MinMax(a,b,&c,&d);
            if(c>=0)v.push_back(c);
            if(d>=0)v.push_back(d);
            a=c+1; b=d-1;
            if(c==d && c>=0) v.pop_back();
        }
        sort(v.begin(),v.end());
        //for(int i=0;i<v.size();i++) cout<<v[i]<<' ';
        ll _max = 0ll;
        for(int i=0;i<v.size()-1;i++) {
            _max = max(_max , v[i+1]-v[i]);
        }
        return _max;
    } else {
        ll s,e;
        MinMax(0,MAX,&s,&e);
        ll minin = (e-s-1ll) / (ll)(N-1) + 1ll;
        ll a=s, b=s+minin;
        vector<ll> v;
        while(1) {
            int flag=0;
            if(b>=e) {
                flag=1;
                b=e;
            }
            ll t1,t2;
            MinMax(a,b,&t1,&t2);
            if(t1!=-1) {
                v.push_back(t1);
                v.push_back(t2);
            }
            if(flag==1) break;
            a = b+1;
            b = a+minin;
        }
        //for(int i=0;i<v.size();i++) cout<<v[i]<<' ';
        ll _max=0;
        for(int i=0;i<v.size()-1;i++) {
            _max = max(_max , v[i+1]-v[i]);
        }
        return _max;
    }
	return 0;
}

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

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