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