Submission #988613

#TimeUsernameProblemLanguageResultExecution timeMemory
988613GrayLongest Trip (IOI23_longesttrip)C++17
5 / 100
809 ms2320 KiB
#include "longesttrip.h" #include <algorithm> #include<bits/stdc++.h> #include <cassert> using namespace std; #define ll long long #define ff first #define ss second #define ln endl vector<vector<ll>> A; ll n, d; void dfs(ll u, vector<bool> &vis, vector<int> &trip){ trip.push_back(u); vis[u]=1; for (auto v:A[u]){ if (!vis[v]){ dfs(v, vis, trip); } } } std::vector<int> longest_trip(int N, int D) { n=N; d=D; A.clear(); A.resize(N); for (ll i=0; i<n; i++){ for (ll j=i+1; j<n; j++){ if (are_connected({(int)i}, {(int)j})){ A[i].push_back(j); A[j].push_back(i); } } } vector<ll> semi; for (ll i=0; i<n; i++){ if (A[i].size()<n-1){ semi.push_back(i); } } vector<pair<ll, ll>> vert; for (ll i=0; i<n; i++){ vert.push_back({A[i].size(), i}); sort(A[i].begin(), A[i].end(), [](ll op1, ll op2)->bool{return A[op1].size()<A[op2].size();}); } sort(vert.begin(), vert.end()); // assert(semi.size()>=0 and semi.size()<=2); vector<int> ans; vector<bool> vis(n); for (auto [_, i]:vert){ if (vis[i]==0){ vector<int> trip; dfs(i, vis, trip); if (ans.size()<trip.size()){ ans=trip; } } } return ans; }

Compilation message (stderr)

longesttrip.cpp: In function 'std::vector<int> longest_trip(int, int)':
longesttrip.cpp:36:24: warning: comparison of integer expressions of different signedness: 'std::vector<long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   36 |         if (A[i].size()<n-1){
      |             ~~~~~~~~~~~^~~~
#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...