Submission
Status:
(-SSSSSSSSSSSSSS)(-SSSSSSS)(-SSSSSSSSS)(-SSSSSSSSS)(-SSSSSSSSS)(-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)
Subtask/Task Score:
{0/3}{0/7}{0/12}{0/17}{0/21}{0/40}
Score: 0
User: qweqwe
Problemset: รถไฟตู้เสบียง (Dining Car)
Language: cpp
Time: 0.001 second
Submitted On: 2026-03-25 19:47:15
#include <bits/stdc++.h>
#include "dining_car.h"
using namespace std;
using ll = long long;
using pii = pair<ll,ll>;
using db = long double;
// you can also write additional functions here
pair<int,int> locate_dining_cars(int N) {
ll l=1,r=N;
bool first=0;
int q=1;bool yes=0;
vector<int> a;
while (a.size()<2){
ll mid = (l+r)/2;
q=compare_cars(l,r);
cout << l << " " << mid << " " << r << " " << q << '\n';
if (q==0 && l==1 && r==N) first=1;
if (l==r || (yes==0 && q==0 && l==mid)){
a.push_back(l);
if (first) a.push_back(N-l+1);
l=1;r=N;first=0;
continue;
}
if (yes && q==0){
l=mid+1;yes=0;
}
else if (q==1){
l=mid+1;
}else if (q==-1){
r=mid;
}else if (q==0){
l++;r--;yes=1;
}
}
return make_pair(min(a[0], a[1]),max(a[0], a[1]));
}