Submission #1202693

#TimeUsernameProblemLanguageResultExecution timeMemory
1202693ASGA_RedSeaFinding Routers (IOI20_routers)C++20
100 / 100
1 ms584 KiB
/**

                                    * بسم الله الرحمن الرحيم *

                ﴾ رَبِّ اشْرَحْ لِي صَدْرِي * وَيَسِّرْ لِي أَمْرِي * وَاحْلُلْ عُقْدَةً مِّن لِّسَانِي * يَفْقَهُوا قَوْلِي ﴿

*/

/// author : "Ahmed Samed Gomaa"


#pragma GCC optimize("Ofast")

#include<bits/stdc++.h>

int use_detector(int x);

using namespace std;
using ll=long long;


vector<int>v;

int q;
int ask(int x){
    if(v[x]==-1){
        assert(q>0);
        q--;
        v[x]=use_detector(x);
    }
    return v[x];
}


vector<int>find_routers(int _l,int n,int Q){
    q=Q;
    v.assign(_l+1,-1);

    vector<int>ans;
    int cur=0;
    for(int i=0;i+1<n;i++){
        int l=0,r=_l,m;
        while(l<=r){
            m=(l+r)/2;
            if(ask(m)>i)r=m-1;
            else l=m+1;
        }

        if(i==0){
            ans.push_back(0);
        }
        else{
            int L=cur-1;
            ans.push_back(L-ans.back()+L);
        }

        if(i+1<n)cur=l;
    }
    cur--;
    ans.push_back(cur-ans.back()+cur);

    return ans;
}


//signed main(){
//    ios_base::sync_with_stdio(0);cin.tie(0);
//
//
//    ;
//
//
//    return 0;
//}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...