제출 #74724

#제출 시각아이디문제언어결과실행 시간메모리
74724goodbatonGap (APIO16_gap)C++14
100 / 100
80 ms18276 KiB
#include <cstdio>
#include <iostream>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include "gap.h"

using namespace std;
typedef long long ll;

#define mod 1000000007
#define SIZE 10000

long long findGap1(int T, int N){

  ll l = 0, r = 1e18;
  vector<ll> vec;
  
  while(1){
    ll a, b;

    MinMax(l,r,&a,&b);

    if(a==-1) break;
    
    vec.push_back(a);

    if(a==b) break;

    vec.push_back(b);

    if(a+1==b) break;

    if(vec.size() == N) break;
    
    l = a+1;
    r = b-1;
  }

  sort(vec.begin(),vec.end());

  ll ans = 0;

  for(int i=1;i<vec.size();i++)
    ans = max(ans, vec[i] - vec[i-1]);
  
  return ans;
}

long long findGap(int T, int N){

  if(T==1) return findGap1(T,N);

  ll MAX = 1e18;
  ll l, r;
  vector<ll> vec;

  MinMax(0,(ll)1e18,&l,&r); //N

  ll D = r-l+1 - N;
  ll B = (D+(N-1))/N + 2;
  
  vec.push_back(l);
  vec.push_back(r);
  
  for(ll s = l+1;s<r;s+=B){
    ll a,b;
    MinMax(s,s+B-1,&a,&b);

    if(a!=-1 && a==b){
      vec.push_back(a);
    }else if(a!=-1){
      vec.push_back(a);
      vec.push_back(b);
    }
  }
  
  sort(vec.begin(),vec.end());
  
  ll ans = 0;

  for(int i=1;i<vec.size();i++)
    ans = max(ans, vec[i] - vec[i-1]);
  
  return ans;
}

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

gap.cpp: In function 'long long int findGap1(int, int)':
gap.cpp:35:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(vec.size() == N) break;
        ~~~~~~~~~~~^~~~
gap.cpp:45:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=1;i<vec.size();i++)
               ~^~~~~~~~~~~
gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:83:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i=1;i<vec.size();i++)
               ~^~~~~~~~~~~
gap.cpp:55:6: warning: unused variable 'MAX' [-Wunused-variable]
   ll MAX = 1e18;
      ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...