Submission #1256267

#TimeUsernameProblemLanguageResultExecution timeMemory
1256267nibertObstacles for a Llama (IOI25_obstacles)C++20
10 / 100
68 ms8264 KiB
#include <vector>
using namespace std;

static int T0;
static vector<int> H;
static vector<int> blockedPrefix;

void initialize(vector<int> T, vector<int> h) {
    T0 = T[0];  // only one row
    H = h;
    int M = H.size();
    blockedPrefix.assign(M, 0);
    blockedPrefix[0] = (T0 > H[0] ? 0 : 1);
    for (int j = 1; j < M; j++) {
        blockedPrefix[j] = blockedPrefix[j - 1] + (T0 > H[j] ? 0 : 1);
    }
}

bool can_reach(int L, int R, int S, int D) {
    if (S > D) swap(S, D);
    // number of blocked cells between S and D inclusive, but we can skip S
    int blockedBetween = blockedPrefix[D] - blockedPrefix[S];
    return blockedBetween == 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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...