Submission
Status:
(PPPPPPPPPPPPPPP)(P-SSSSSS)(PPPPPPPPPP)(-SSSSSSSSS)(-SSSSSSSSS)(PP-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)
Subtask/Task Score:
{3/3}{0/7}{12/12}{0/17}{0/21}{0/40}
Score: 15
User: pxsit
Problemset: รถไฟตู้เสบียง (Dining Car)
Language: cpp
Time: 0.002 second
Submitted On: 2025-05-24 18:30:33
#include "dining_car.h"
#include <bits/stdc++.h>
using namespace std;
int find(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) {
if(n <= 10){
int fs = find(1, n), nd = -1;
if (fs > 1) {
int cand = find(1, fs - 1);
if (compare_cars(cand, fs) == 0) {
nd = cand;
}
}
if (nd == -1 && fs < n)
nd = find(fs + 1, n);
return {min(fs, nd), max(fs, nd)};
}
int a = find(1, n),b = find(a + 1, n);
return {a, b};
}