이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "gap.h"
using namespace std;
long long findGap(int T, int N)
{
if(T == 1){
long long arr[N];
int x = 0;
long long a, b;
a = 0;
b = 1000000000000000005;
long long mn, mx;
while(true){
MinMax(a,b,&mn,&mx);
arr[x] = mn;
arr[N-x-1] = mx;
a = mn + 1;
b = mx - 1;
x++;
if ((x >= (N+1)/2)) break;
}
long long mm = 0;
for(int i = 0;i < N-1;i++){
mm = std::max(mm,arr[i+1]-arr[i]);
}
return mm;
}
else{
long long a, b;
a = 0;
b = 1000000000000000005;
long long mn, mx;
MinMax(a,b,&mn,&mx);
std::vector<long long> v;
v.push_back(mn);
v.push_back(mx);
long long dist = mx - mn - 2;
long long small = dist / (N-1);
long long big = small+1;
a = mn + 1;
for(int i = 0;i < N-1;i++){
if(i < dist % (N-1)) b = a + big;
else b = a + small;
MinMax(a,b-1,&mn,&mx);
//printf("%lld %lld\n",a,b-1);
if(mn != -1){
v.push_back(mn);
v.push_back(mx);
}
a = b;
}
long long mm = 0;
sort(v.begin(),v.end());
for(int i = 0;i < v.size()-1;i++){
mm = std::max(mm,v[i+1]-v[i]);
}
return mm;
}
}
컴파일 시 표준 에러 (stderr) 메시지
gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:54:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0;i < v.size()-1;i++){
~~^~~~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |