Submission

Status:

(PPP-SSSSSSSSSSS)(-SSSSSSS)(-SSSSSSSSS)(PPPPPPPPPP)(PP-SSSSSSS)(-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)

Subtask/Task Score:

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

Score: 17

User: pxsit

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

Language: cpp

Time: 0.001 second

Submitted On: 2025-06-29 13:23:23

#include "dining_car.h"
#include <bits/stdc++.h>
using namespace std;
int solve(int l, int r) {
    while (l < r) {
        int mid = l + (r - l) / 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 x = solve(1, n);
    int y = -1;
    if (x > 1) {
        int l = solve(1, x - 1);
        if (l != x) {
            y = l;
        }
    }
    if (y == -1 && x < n) {
        int r = solve(x + 1, n);
        if (r != x) {
            y = r;
        }
    }
    return {min(x, y), max(x, y)};
}