Submission #1201606

#TimeUsernameProblemLanguageResultExecution timeMemory
1201606steveonalexFinding Routers (IOI20_routers)C++20
100 / 100
1 ms328 KiB
#include "routers.h"
#include <bits/stdc++.h>
using namespace std;
void dnc(int l, int r, int u, int v, vector<int> &cut){
    if (l > r) return;
    if (u == v) {
        cut[v] = max(cut[v], r);
        return;
    }
    int mid = (l + r) / 2;
    int split = use_detector(mid);
    cut[split] = max(cut[split], mid);
    dnc(l, mid - 1, u, split, cut);
    dnc(mid+1, r, split, v, cut);
}
vector<int> find_routers(int l, int n, int q){
    vector<int> p(n);
    vector<int> cut(n);
    dnc(0, l, 0, n-1, cut);
    for(int i = 1; i < n; ++i){
        int L = cut[i-1];
        p[i] = p[i-1] + 2 * (L - p[i-1]);
    }
    return p;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...