Submission #899580

#TimeUsernameProblemLanguageResultExecution timeMemory
899580SzilLongest Trip (IOI23_longesttrip)C++17
0 / 100
9 ms596 KiB
#include <bits/stdc++.h> #include "longesttrip.h" using namespace std; // bool are_connected(int[] A, int[] B); vector<int> longest_trip(int N, int D) { assert(D == 2); queue<int> q; vector<int> ans; for (int i = 0; i < N; i++) { q.push(i); } int extra = -1; while (!q.empty()) { int u = q.front(); q.pop(); ans.emplace_back(u); if (q.empty()) continue; int v = q.front(); if (!are_connected({u}, {v})) { q.pop(); if (q.empty()) { extra = v; } else { q.push(v); } } } int insert = -1; if (extra != -1) { for (int i = 1; i < ans.size(); i++) { if (are_connected({ans[i-1]}, {extra}) && are_connected({extra}, {ans[i]})) { insert = i; break; } } } vector<int> res; for (int i = 0; i < ans.size(); i++) { if (i == insert) res.emplace_back(extra); res.emplace_back(ans[i]); } for (int i = 1; i < res.size(); i++) { assert(are_connected({res[i-1]}, {res[i]})); } assert(res.size() == N); return res; }

Compilation message (stderr)

longesttrip.cpp: In function 'std::vector<int> longest_trip(int, int)':
longesttrip.cpp:35:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |         for (int i = 1; i < ans.size(); i++) {
      |                         ~~^~~~~~~~~~~~
longesttrip.cpp:43:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |     for (int i = 0; i < ans.size(); i++) {
      |                     ~~^~~~~~~~~~~~
longesttrip.cpp:47:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |     for (int i = 1; i < res.size(); i++) {
      |                     ~~^~~~~~~~~~~~
In file included from /usr/include/c++/10/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33,
                 from longesttrip.cpp:1:
longesttrip.cpp:50:23: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   50 |     assert(res.size() == N);
      |            ~~~~~~~~~~~^~~~
#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...