Submission
Status:
(PPPPPPPPPPPPPPP)(PPPPPPPP)(PPPPPPPPPP)(PPPPPPPPPP)(PPPPPPPPPP)(PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP)
Subtask/Task Score:
{3/3}{7/7}{12/12}{17/17}{21/21}{40/40}
Score: 100
User: Maxzyb0y
Problemset: รถไฟตู้เสบียง (Dining Car)
Language: cpp
Time: 0.002 second
Submitted On: 2026-02-15 15:54:21
#include <bits/stdc++.h>
#include "dining_car.h"
using namespace std;
int x,y;
int find_first_car(int l, int r) {
while (l < r) {
int mid = l + (r - l) / 2;
int c = compare_cars(mid, mid + 1);
if (c == 1) {
l = mid + 1;
}
else
{
r = mid;
}
}
return l;
}
pair<int, int> locate_dining_cars(int N)
{
int l=1, r=N;
while (l<r)
{
int md = (l+r)/2;
int side_query = compare_cars(l,r);
if (side_query == 0)
{
x = find_first_car(l, md);
y = r-(x-l);
return {x, y};
}
int mid_query = compare_cars(md, md+1);
if (side_query == -1 && mid_query == -1)
r = md;
else if (side_query == 1 && mid_query == 1)
l = md+1;
else
return {find_first_car(l, md), find_first_car(md+1, r)};
}
}