Submission #1296040

#TimeUsernameProblemLanguageResultExecution timeMemory
1296040SabaKharebavaObstacles for a Llama (IOI25_obstacles)C++20
0 / 100
2096 ms22972 KiB
#include<bits/stdc++.h> using namespace std; vector<int> c; void initialize(vector<int> t, vector<int> h) { c.resize(h.size(), -1); auto dfs = [&](auto &dfs, int i, int j, int val) -> void { if (h[j] >= t[i] || i < 0 || i >= t.size() || j >= h.size()) { return; } if (i == 0) c[j] = val; dfs(dfs, i+1, j, val); dfs(dfs, i, j+1, val); if (i == 2 && j-1 >= 0 && h[j-1] >= t[i-1] && h[j-2] < t[0] && c[j] == -1) { int ind = j; while (ind >= 0 && h[ind] < t[0]) { c[ind] = val; ind--; } if (j+1 < h.size() && h[j+1] < t[0]) dfs(dfs, 0, j+1, val); } }; for (int i = 0; i < h.size(); i++) if (c[i] == -1 && h[i] < t[0]) dfs(dfs, 0, i, i); } bool can_reach(int ll, int r, int s, int d) { if (d < s) swap(d, s); return (c[d] == s); }
#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...