Submission #1255425

#TimeUsernameProblemLanguageResultExecution timeMemory
1255425robijoyFinding Routers (IOI20_routers)C++17
70.13 / 100
1 ms328 KiB
/*
 *   Starting with the name of almighty ALLAH
 */

#include "routers.h"
// #include <bits/stdc++.h>
using namespace std;

// #define int long long

// vector<int> p = {0,6,8};

// int use_detector(int x)
// {
//     vector<int>::iterator left, right;
//     right = upper_bound(p.begin(), p.end(), x);
//     left = prev(right);

//     if (right == p.end()) {
//         return p.size() - 1;
//     } else if ((x - *left) <= (*right - x)){
//         return std::distance(p.begin(), left);
//     } else {
//         return std::distance(p.begin(), right);
//     }
// }

vector<int> find_routers(int size, int n, int q) {
    vector<int> ans;
    ans.push_back(0);
    int last = 0;
    for (int i = 0; i < n-1; ++i)
    {
        int l = ans[ans.size()-1]+1, r = size;
        int an = 0;
        while(l<=r) {
            int mid = (l+r)>>1;
            int x = use_detector(mid);
            if(x == last) {
                l = mid+1;
            }else{
                an = mid;
                r = mid-1;
            }
        }
        int lasti = ans[ans.size()-1];
        int dis = an - lasti;
        dis--;
        ans.push_back(lasti+(dis*2));
        last++;
    }
    return ans;
}

// int32_t main() {
//     ios::sync_with_stdio(false);
//     cin.tie(0);
//     int l, n, q;
//     cin>>l>>n>>q;
//     vector<int> robi = find_routers(l,n,q);
//     for (int i = 0; i < robi.size(); ++i)
//     {
//         cout<<robi[i]<<' ';
//     }
// }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...