Submission #1352540

#TimeUsernameProblemLanguageResultExecution timeMemory
1352540marizaHighest (CEOI25_highest)C++20
12 / 100
691 ms1114112 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const ll INF=1e18;
#define MID ((l+r)/2)

vector<int> solve(vector<int> &v, vector<int> &w, vector<pair<int,int>> &q){
    ll n=v.size();
    ll dist[n][n];
    
    for(ll i=0; i<n; i++){
        set<pair<ll,ll>> s;
        s.insert({0,i});

        for(ll j=i; j<n; j++){
            // cout<<i<<" "<<j<<endl;
            while((*s.begin()).second<j){
                // cout<<"Erase {"<<(*s.begin()).first<<", "<<(*s.begin()).second<<"}"<<endl;
                s.erase(s.begin());
                if(s.empty()){
                    s.insert({INF,j});
                }
            }
            // cout<<"ok"<<endl;
            dist[i][j]=(*s.begin()).first;
            // cout<<"ok"<<endl;
            s.insert({dist[i][j]+1,j+v[j]});
            s.insert({dist[i][j]+2,j+w[j]});
        }
    }

    vector<int> ans;
    for(auto i:q){
        ans.push_back(dist[i.first][i.second]);
    }
    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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...