제출 #1065127

#제출 시각아이디문제언어결과실행 시간메모리
1065127vjudge1가장 긴 여행 (IOI23_longesttrip)C++17
60 / 100
902 ms1420 KiB
#include "longesttrip.h"
#include<bits/stdc++.h>
using namespace std;
vector<int>adj[256];
bitset<256>vis;
void dfs(int n){
    if(vis[n])return;
    vis[n]=1;
    for(auto i:adj[n])
        dfs(i);
}
vector<int>path;
void dfs2(int n){
    path.push_back(n);
    vis[n]=1;
    for(auto i:adj[n])
        if(!vis[i])
            return dfs2(i);
}
vector<int> longest_trip(int N, int D){
    for(int i=0;i<N;i++)
        adj[i].clear();
    for(int i=1;i<N;i++) for(int j=i;j--;)
        if(are_connected({i},{j}))
            adj[i].push_back(j),
            adj[j].push_back(i);
    vis.reset();
    dfs(0);
    if(vis.count()!=N){
        vector<int>a,b;
        for(int i=0;i<N;i++)
            if(!vis[i])
                a.push_back(i);
            else b.push_back(i);
        return a.size()>b.size()?a:b;
    }
    for(int i=0;i<N;i++) {
        vis.reset();
        path.clear();
        dfs2(i);
        if(path.size()==N)
            return path;
        for(auto x:adj[i])
            if(!vis[x]) {
                vector<int>v2;
                vis[x]=1;
                for(int i=0;i<N;i++)
                    if(!vis[i])v2.push_back(i);
                v2.push_back(x);
                for(auto i:path)
                    v2.push_back(i);
                return v2;
            }
    }
    vector<int>b;
    for(int i=0;i<N;i++)
        if(!vis[i])
            b.push_back(i);
    return path.size()>b.size()?path:b;
}

컴파일 시 표준 에러 (stderr) 메시지

longesttrip.cpp: In function 'std::vector<int> longest_trip(int, int)':
longesttrip.cpp:29:19: warning: comparison of integer expressions of different signedness: 'std::size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   29 |     if(vis.count()!=N){
      |        ~~~~~~~~~~~^~~
longesttrip.cpp:41:23: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   41 |         if(path.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...