Submission
Status:
(-SSSSSSSSSSSSSS)(-SSSSSSS)(-SSSSSSSSS)(PPPPPPPPPP)(-SSSSSSSSS)(-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)
Subtask/Task Score:
{0/3}{0/7}{0/12}{17/17}{0/21}{0/40}
Score: 17
User: GGEZLOLx3D
Problemset: รถไฟตู้เสบียง (Dining Car)
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-25 21:54:14
#include <bits/stdc++.h>
#include "dining_car.h"
using namespace std;
// you can also write additional functions here
pair < int, int > locate_dining_cars(int N)
{
int l=N-1,r=N;
if(compare_cars(l,r)==1){
return make_pair(1,N);
}
int mid=(1+N)-(1+N)/2;
l=mid;
r=mid+1;
int x=compare_cars(l,r);
int ks=1,kk=N;
int d=(kk-ks-1)/2;
while(x!=0 && d!=0){
int mid=(ks+kk)-(ks+kk)/2;
if(x==-1){
kk=mid-1;
}
else{
ks=mid;
}
d=(kk-ks)-(kk-ks)/2;
//cout << ks+d << " " << kk-d << "\n";
if(ks+d==kk-d){
x=compare_cars(ks+d,ks+d+1);
if(x==0){
//cout << ks+d << " " << ks+d+1 << "\n";
return make_pair(1,2*ks+2*d);
}
}
else{
x=compare_cars(ks+d,ks+d+1);
if(x==0){
//cout << ks+d << " " << kk-d << "\n";
return make_pair(1,ks+d-1+kk-d);
}
}
}
return make_pair(1,ks+d+1);
}