Submission #1352543

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

typedef int 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());
            }
            // 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;
}

Compilation message (stderr)

highest.cpp:5:14: warning: overflow in conversion from 'double' to 'll' {aka 'int'} changes value from '1.0e+18' to '2147483647' [-Woverflow]
    5 | const ll INF=1e18;
      |              ^~~~
#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...