Submission

Status:

(-SSSSSSSSSSSSSS)(-SSSSSSS)(-SSSSSSSSS)(PPPPPPPPPP)(-SSSSSSSSS)(-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS)

Subtask/Task Score:

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

Score: 17

User: GGEZLOLx3D

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

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-25 21:54:14

#include <bits/stdc++.h>
#include "dining_car.h"

using namespace std;

// you can also write additional functions here

pair < int, int > locate_dining_cars(int N)
{

    int l=N-1,r=N;
    if(compare_cars(l,r)==1){
        return make_pair(1,N);
    }
    int mid=(1+N)-(1+N)/2;
    l=mid;
    r=mid+1;
    int x=compare_cars(l,r);
    int ks=1,kk=N;
    int d=(kk-ks-1)/2;
    while(x!=0 && d!=0){
        int mid=(ks+kk)-(ks+kk)/2;
        if(x==-1){
            kk=mid-1;
        }
        else{
            ks=mid;
        }
        d=(kk-ks)-(kk-ks)/2;

        //cout << ks+d << " " << kk-d << "\n";
        if(ks+d==kk-d){
            x=compare_cars(ks+d,ks+d+1);

            if(x==0){
                //cout << ks+d << " " << ks+d+1 << "\n";
                return make_pair(1,2*ks+2*d);
            }
        }
        else{
            x=compare_cars(ks+d,ks+d+1);
            if(x==0){
                //cout << ks+d << " " << kk-d << "\n";
                return make_pair(1,ks+d-1+kk-d);
            }
        }

    }
    return make_pair(1,ks+d+1);

}