Submission #840515

#TimeUsernameProblemLanguageResultExecution timeMemory
840515jonathanirvingsLongest Trip (IOI23_longesttrip)C++17
60 / 100
477 ms592 KiB
#include "longesttrip.h" #include <bits/stdc++.h> using namespace std; vector<int> longest_trip(int N, int D) { vector<int> path = {0}; vector<bool> inside(N, false); inside[0] = true; vector<vector<int>> memo(N, vector<int>(N, -1)); auto is_connected = [&] (int x, int y) { if (memo[x][y] >= 0) { return memo[x][y]; } memo[x][y] = memo[y][x] = are_connected({x}, {y}); return memo[x][y]; }; while (true) { if (path.size() == N) { return path; } bool found = false; for (int i = 0; i < N && !found; ++i) { if (!inside[i]) { if (is_connected(path[0], i)) { path.insert(path.begin(), i); found = true; inside[i] = true; break; } if (is_connected(path[path.size() - 1], i)) { path.insert(path.end(), i); found = true; inside[i] = true; break; } for (int j = 0; j < path.size(); ++j) { if (is_connected(path[j], i)) { vector<int> new_path; new_path.insert(new_path.end(), path.begin() + j + 1, path.end()); new_path.insert(new_path.end(), path.begin(), path.begin() + j + 1); path = new_path; path.insert(path.end(), i); found = true; inside[i] = true; break; } } } } if (!found) { if (path.size() >= (N - path.size())) { return path; } path.clear(); for (int i = 0; i < N; ++i) { if (!inside[i]) { path.insert(path.end(), i); } } return path; } } }

Compilation message (stderr)

longesttrip.cpp: In function 'std::vector<int> longest_trip(int, int)':
longesttrip.cpp:21:25: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   21 |         if (path.size() == N) {
      |             ~~~~~~~~~~~~^~~~
longesttrip.cpp:39:35: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |                 for (int j = 0; j < path.size(); ++j) {
      |                                 ~~^~~~~~~~~~~~~
#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...