Submission
Status:
(PP-SSSSSSSSSSSS)(P-SSSSSS)(PPPPPPPPPP)(-SSSSSSSSS)(-SSSSSSSSS)(-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)
Subtask/Task Score:
{0/3}{0/7}{12/12}{0/17}{0/21}{0/40}
Score: 12
User: qweqwe
Problemset: รถไฟตู้เสบียง (Dining Car)
Language: cpp
Time: 0.002 second
Submitted On: 2026-03-25 19:59:58
#include <bits/stdc++.h>
#include "dining_car.h"
using namespace std;
using ll = long long;
using pii = pair<ll,ll>;
using db = long double;
// you can also write additional functions here
pair<int,int> locate_dining_cars(int N) {
ll l=1,r=N;
bool first=0;
int q=1;bool yes=0;
vector<int> a;
int preva=0,prevb=0;
while (a.size()<2){
ll mid = (l+r)/2;
q=compare_cars(l,r);
//cout << l << " " << mid << " " << r << " " << q << '\n';
if (q==0 && l==1 && r==N) first=1;
if (l==r){
a.push_back(l);
if (first) a.push_back(N-l+1);
l=1;r=N;first=0;
continue;
}if (preva==l && prevb==r){
a.push_back(mid);
a.push_back(mid+1);
continue;
}
preva=l;prevb=r;
if (q==1){
l=mid;
}else if (q==-1){
r=mid;
}
}
return make_pair(min(a[0], a[1]),max(a[0], a[1]));
}