#include "fun.h"
#include <bits/stdc++.h>
#include <vector>
using namespace std;
stack<int> s;
vector<bool> visited;
vector<vector<pair<int,int>>> adj;
vector<int> v;
int n;
void dfs(int cur, int mw) {
for(auto &x : adj[cur]) {
if(visited[x.first] || x.second >= mw) {
continue;
}
dfs(x.first, x.second);
visited[x.first] = true;
s.push(x.first);
}
if(s.size() == n) {
while(!s.empty()) {
v.push_back(s.top());
s.pop();
}
return;
}
else {
visited[cur] = false;
s.pop();
}
}
std::vector<int> createFunTour(int N, int Q) {
int H = hoursRequired(0, N - 1);
int A = attractionsBehind(0, N - 1);
return std::vector<int>(N);
n = N;
visited.resize(N);
adj.resize(N);
for(int i = 0;i < N ; i++){
for(int j = i + 1; j < N ;j ++) {
int temp = hoursRequired(i , j);
if(attractionsBehind(i, j) == 0) {
adj[i].push_back({j, temp});
adj[j].push_back({i , temp});
}
}
}
for(int i = 0 ;i < N ;i++) {
dfs(i , INT_MAX);
}
reverse(v.begin(), v.end());
return v;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |