Submission

Status:

(PP-SSSSSSSSSSSS)(P-SSSSSS)(PPPPPPPPPP)(-SSSSSSSSS)(-SSSSSSSSS)(-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)

Subtask/Task Score:

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

Score: 12

User: qweqwe

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-25 19:59:58

#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;
	int preva=0,prevb=0;
	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){
			a.push_back(l);
			if (first) a.push_back(N-l+1);
			l=1;r=N;first=0;
			continue;
		}if (preva==l && prevb==r){
			a.push_back(mid);
			a.push_back(mid+1);
			continue;
		}
		preva=l;prevb=r;
		if (q==1){
			l=mid;
		}else if (q==-1){
			r=mid;
		}
	}
	
	return make_pair(min(a[0], a[1]),max(a[0], a[1]));
}