이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "gap.h"
#include<bits/stdc++.h>
using namespace std;
long long findGap(int T, int N)
{
if(T==1){
long long sa,du;
long long *kiri,*kanan;
kiri=&sa;
kanan=&du;
MinMax(0,1e18,kiri,kanan);
vector<long long>ve;
ve.push_back(*kiri);
long long jaw=0;
ve.push_back(*kanan);
while(1){
if(*kiri>*kanan)
break;
MinMax(*kiri+1,*kanan-1,kiri,kanan);
if(*kiri==-1 && *kanan==-1)
break;
ve.push_back(*kiri);
ve.push_back(*kanan);
}
sort(ve.begin(),ve.end());
for(int i=1;i<ve.size();i++)
jaw=max(jaw,ve[i]-ve[i-1]);
return jaw;
}
// cout<<T<<" "<<N<<endl;
long long sa,du,ti,em;
vector<long long>ve;
long long *kiri,*kanan;
kiri=&sa;
kanan=&du;
MinMax(0,1e18,kiri,kanan);
// cout<<*kiri<<' '<<*kanan<<endl;
long long gap=(*kanan-*kiri)/(N-1);
long long jaw=0;
// cout<<*kiri<<" "<<*kanan<<" "<<gap<<endl;
long long awal;
for(awal=*kiri;awal<=*kanan;awal+=gap+1){
// cout<<awal<<" <<<___\n";
long long *lo,*hi;
lo=&ti;
hi=&em;
MinMax(awal,awal+gap,lo,hi);
// cout<<awal<<' '<<awal+gap<<" -> "<<*lo<<" "<<*hi<<endl;
if(*lo==-1 && *hi==-1)
continue;
ve.push_back(*lo);
ve.push_back(*hi);
}
// cout<<awal<<endl;
sort(ve.begin(),ve.end());
// for(int i:ve)
// cout<<i<<' ';
// cout<<endl;
for(int i=1;i<ve.size();i++){
jaw=max(jaw,ve[i]-ve[i-1]);
}
// cout<<jaw<<endl;
return jaw;
}
컴파일 시 표준 에러 (stderr) 메시지
gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:27:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=1;i<ve.size();i++)
~^~~~~~~~~~
gap.cpp:60:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=1;i<ve.size();i++){
~^~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |