Submission

Status:

(P-SSSSSSSSSSSSS)(-SSSSSSS)(-SSSSSSSSS)(PP-SSSSSSS)(P-SSSSSSSS)(-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)

Subtask/Task Score:

{0/3}{0/7}{0/12}{0/17}{0/21}{0/40}

Score: 0

User: x

Problemset: รถไฟตู้เสบียง (Dining Car)

Language: cpp

Time: 0.001 second

Submitted On: 2026-02-15 15:50:24

#include <bits/stdc++.h>
#include "dining_car.h"
using namespace std;

int x, y;
int find_inside(int l, int r){
  while(l < r){
    int mid=(l+r)/2;
    if(compare_cars(mid, mid+1) <= 0)
      r = mid;
    else
      l = mid+1;
  }
  return l;
}

pair<int, int> locate_dining_cars(int N) 
{
  int l = 1, r = N;
  while(l < r){
      int mid = (l+r) / 2;
      int side_query = compare_cars(l, r);
      if(side_query = 0){
        x = find_inside(l, mid);
        y = r-(x-1);
        return {x, y};
      }
      int mid_query = compare_cars(mid, mid+1);
      if(side_query == -1 && mid_query == -1)
        r = mid;
      else if(side_query == 1 && mid_query == 1)
        l = mid+1;
      else
        return {find_inside(l, mid), find_inside(mid+1, r)};
  }
}