Submission #1356450

#TimeUsernameProblemLanguageResultExecution timeMemory
1356450toast12Finding Routers (IOI20_routers)C++20
68.08 / 100
1 ms348 KiB
#include "routers.h"
using namespace std;

vector<int> find_routers(int l, int n, int q) {
    vector<int> ans(1);
    int prev = 0;
    for (int i = 1; i < n; i++) {
        int cur = 1;
        int x = prev;
        while (true) {
            x += cur;
            int res = use_detector(min(x, l));
            if (res == i) break;
            cur *= 2;
        }
        int lo = x-cur, hi = x;
        while (lo < hi) {
            int mid = (lo+hi)/2;
            int res = use_detector(mid);
            if (res == i) hi = mid;
            else lo = mid+1;
        }
        int dist = hi-prev;
        ans.push_back(prev+2*dist-2);
        prev = ans.back();
    }
    return ans;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...