Submission #960122

#TimeUsernameProblemLanguageResultExecution timeMemory
960122tutisLongest Trip (IOI23_longesttrip)C++17
15 / 100
14 ms856 KiB
#include "longesttrip.h"
#include <bits/stdc++.h>
using namespace std;
mt19937_64 rng(0);

std::vector<int> longest_trip(int N, int D)
{
    vector<int>x,y;
    x.push_back(0);
    for(int i=1;i<N;i++){
        if(are_connected({0}, {i})){
            x.push_back(i);
        } else{
            y.push_back(i);
        }
    }
    if(y.size()>0 && !are_connected(x,y)){
        if(x.size()>y.size()){
            return x;
        } else{
            return y;
        }
    }
 //   if(y.empty()){
    vector<int>ans;
    vector<int>p;
    ans.push_back(x.back());
    for(int i=1;i<N;i++){
        p.push_back(i);
    }
    p.erase(find(p.begin(),p.end(), x.back()));
    while(!p.empty()){
        shuffle(p.begin(),p.end(),rng);
        bool found=false;
        for(int i: p){
            if(are_connected({ans.back()}, {i})){
                ans.push_back(i);
                p.erase(find(p.begin(),p.end(), i));
                found=true;
                break;
            }
        }
        if(!found){
            break;
        }
    }
    reverse(ans.begin(),ans.end());
    ans.push_back(0);
    for(int i=0;i<p.size();i++){
        if(find(x.begin(),x.end(), p[i])!=x.end()){
            swap(p[i], p[0]);
            break;
        }
    }
    for(int i: p){
        ans.push_back(i);
    }
    return ans;
   // }
}

Compilation message (stderr)

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