This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "longesttrip.h"
#include <bits/stdc++.h>
using namespace std;
vector<int> longest_trip(int N, int D)
{
vector <int> v;
if(D == 3){
for(int i = 0;i < N;i++){
v.push_back(i);
}
}else if(D == 2){
int last;
if(are_connected({0},{1})){
v.push_back(0);
v.push_back(1);
if(are_connected({0},{2})){
v.insert(v.begin(),2);
last = 1;
}else{
v.push_back(2);
last = 2;
}
}else{
v.push_back(0);
v.push_back(2);
v.push_back(1);
last = 1;
}
for(int i = 3; i < N;i++){
if(are_connected({last},{i})){
v.push_back(i);
last = i;
}else{
v.insert(v.begin(),i);
}
}
}else{
vector <int>v2;
v.push_back(0);
int last = 0;
if(are_connected({0},{1})){
v.push_back(1);
last = 1;
}else{
v2.push_back(1);
}
for(int i = 2;i < N;i++){
if(are_connected({last},{i})){
v.push_back(i);
last = i;
}else if(are_connected({v[0]},{i})){
v.insert(v.begin(),i);
}else{
v2.push_back(i);
}
}
int i1 = -1;
int i2 = -1;
for(int i = 1; i < v.size()-1;i++){
for(int j = 0;j < v2.size();j++){
if(are_connected({v[i]},{v2[j]})){
i1 = i;
i2 = j;
break;
}
}
if(i1 != -1){
break;
}
}
if(i1 == -1){
if(v.size() > v2.size()){
return v;
}
return v2;
}else{
vector <int> res;
for(int i = 0;i < v.size();i++){
res.push_back(v[(i1+1+i)%v.size()]);
}
for(int i = 0;i < v2.size();i++){
res.push_back(v[(i2+i)%v2.size()]);
}
return res;
}
}
return v;
}
Compilation message (stderr)
longesttrip.cpp: In function 'std::vector<int> longest_trip(int, int)':
longesttrip.cpp:61:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
61 | for(int i = 1; i < v.size()-1;i++){
| ~~^~~~~~~~~~~~
longesttrip.cpp:62:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
62 | for(int j = 0;j < v2.size();j++){
| ~~^~~~~~~~~~~
longesttrip.cpp:80:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
80 | for(int i = 0;i < v.size();i++){
| ~~^~~~~~~~~~
longesttrip.cpp:83:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
83 | for(int i = 0;i < v2.size();i++){
| ~~^~~~~~~~~~~
# | 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... |