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: tHeNyXs

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-04-23 15:16:32

#include <bits/stdc++.h>
#include "dining_car.h"

using namespace std;
#define pii pair<int, int>
// you can also write additional functions here

pair<int,int> locate_dining_cars(int N) {
    // ===== 1. หา peak =====
    int l = 1, r = N;
    while (l < r) {
        int mid = (l + r) / 2;
        int val = compare_cars(mid, mid+1);

        if (val == -1) {
            
            l = mid + 1;
        } else {
            
            r = mid;
        }
    }
    int m = l;

    l = 1; r = m;
    while (l < r) {
        int mid = (l + r) / 2;
        int val = compare_cars(mid, mid+1);

        if (val == 1) {
           
            r = mid;
        } else {
            l = mid + 1;
        }
    }
    int A = l;


    l = m + 1; r = N;
    while (l < r) {
        int mid = (l + r) / 2;
        int val = compare_cars(mid, mid+1);

        if (val == -1) {
            l = mid + 1;
        } else {
            r = mid;
        }
    }
    int B = l;

    if (A > B) swap(A, B);
    return {A, B};
}