제출 #1230249

#제출 시각아이디문제언어결과실행 시간메모리
1230249neisennFinding Routers (IOI20_routers)C++20
100 / 100
1 ms584 KiB
#include <iostream>
#include <utility>
#include <set>
#include <vector>
#include "routers.h"
using namespace std;
#define pb push_back

std::vector<int> find_routers(int l, int n, int q) {
    cin >> l >> n >> q;
    vector<int> p;
    p.pb(0);
    vector<int> val(l+1, -1);
    for (int i = 1; i < n; i++){
        int lo = 0, hi = l;
        int ans = -1;
        while (lo <= hi){
            int mid = (lo+hi)/2, ret;
            if (val[mid] != -1){ 
              ret = val[mid];
            } else {
              val[mid] = ret = use_detector(mid);
            }
            if (ret >= i){
                hi = mid-1;
            } else {
                ans = mid;
                lo = mid+1;
            }
        }
        int x;
        if (ans == -1) x = p[i-1]+1;
        else {
          ans -= p[i-1];
          x = 2*ans+p[i-1];
        }
        p.pb(x);
    }
    vector<int> ans;
    for (int i : p) ans.pb(i);
    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...