Submission #1295799

#TimeUsernameProblemLanguageResultExecution timeMemory
1295799SabaKharebavaObstacles for a Llama (IOI25_obstacles)C++20
10 / 100
2097 ms22968 KiB
#include<bits/stdc++.h>

using namespace std;

vector<int> l;

void initialize(vector<int> t, vector<int> h) {
	l.resize(h.size(), -1);
	auto dfs = [&](auto& dfs, int i, int j, int val, bool c = false) -> void {
		if (i < 0 || i >= t.size() || j >= h.size() || h[j] >= t[i])
			return;
		if (l[j] == -1)
			l[j] = val;
		if (i-1 > 0 && j-1 > 0 && h[j-1] >= t[i-1])
			dfs(dfs, i-1, j, val, true);
		if (!c)
			dfs(dfs, i+1, j, val);
		dfs(dfs, i, j+1, val);
	};
	for (int i = 0; i < h.size(); i++)
		if (l[i] == -1 && t[0] > h[i])
			dfs(dfs, 0, i, i);
}

bool can_reach(int ll, int r, int s, int d) {
	if (d < s)
		swap(d, s);
	return (l[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...