Submission
Status:
(P-SSSSSSSSSSSSS)(-SSSSSSS)(-SSSSSSSSS)(-SSSSSSSSS)(-SSSSSSSSS)(-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)
Subtask/Task Score:
{0/3}{0/7}{0/12}{0/17}{0/21}{0/40}
Score: 0
User: I_need2win
Problemset: รถไฟตู้เสบียง (Dining Car)
Language: cpp
Time: 0.001 second
Submitted On: 2026-02-15 16:14:13
#include <bits/stdc++.h>
#include "dining_car.h"
using namespace std;
int findinside(int l, int r){
while (l<r){
int ml=(l+r)/2;
if (compare_cars(ml, ml+1)==-1) r=ml;
else l=ml+1;
}
return l;
}
pair<int, int> locate_dining_cars (int N){
int l=1, r=N, x, y;
while (l<r){
int ml=(l+r)/2;
int side_query=compare_cars(l, r);
if (side_query==0){
x=findinside(l, ml);
y=r-(x-l);
return {x, y};
}
int mid_query = compare_cars(ml, ml+1);
if (side_query==1 && mid_query==-1) r=ml;
else if (side_query==-1 && mid_query==1) l=ml+1;
else return make_pair(findinside(l, ml), findinside(ml+1, r));
}
}