Submission #836263

#TimeUsernameProblemLanguageResultExecution timeMemory
836263mousebeaverHighway Tolls (IOI18_highway)C++14
6 / 100
115 ms2096 KiB
#define ll long long
#define pll pair<ll, ll>
#include "highway.h"
#include <bits/stdc++.h>
using namespace std;

void find_pair(int n, std::vector<int> u, std::vector<int> v, int a, int b) 
{
    vector<int> w(n-1, 0);
    ll dist = ask(w);

    //Find first station:
    int left = 0;
    int right = n-1;
    while(left < right)
    {
        int mid = (left+right)/2;
        w.assign(n-1, 0);
        for(int i = 0; i <= mid; i++)
        {
            w[i] = 1;
        }

        if(ask(w) > dist)
        {
            right = mid;
        }
        else
        {
            left = mid+1;
        }
    }
    int start = left;

    //Find second station:
    left = 1;
    right = n;
    while(left < right)
    {
        int mid = (left+right+1)/2;
        w.assign(n-1, 0);
        for(int i = n; i >= mid; i--)
        {
            w[i-1]= 1;
        }

        if(ask(w) > dist)
        {
            left = mid;
        }
        else
        {
            right = mid-1;
        }
    }
    int goal = left;

    answer(start, goal);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...