Submission #433053

#TimeUsernameProblemLanguageResultExecution timeMemory
433053ACmachineFinding Routers (IOI20_routers)C++17
100 / 100
2 ms684 KiB
#include "routers.h"
#include <bits/stdc++.h>
using namespace std;
#define FOR(i, j, k, l) for(int i = (j); i < (k); i += (l))
#define FORD(i, j, k, l) for(int i = (j); i >= (k); i -= (l))
#define REP(i, n) FOR(i, 0, n, 1)
#define REPD(i, n) FORD(i, n, 0, 1)
#define pb push_back
typedef long long ll;

std::vector<int> find_routers(int l, int n, int q) {
    vector<int> ans;
    ans.pb(0);
    vector<int> mapka(l, -1);
    auto get = [&](int x){
        if(mapka[x] != -1)
            return mapka[x];
        return mapka[x] = use_detector(x);
    };
    function<int(int, int, int)> dfs = [&](int l, int r, int v){
        if(r - l <= 1)
            return l;
        int m = (l + r) >> 1;
        if(get(m) <= v)
            return dfs(m, r, v);
        else
            return dfs(l, m, v);
    };
    REP(i, n - 1){
        int x = dfs(1, l, i);
        ans.pb(x + (x - ans.back()));
    }
	return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...