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));
    }
}