Submission #1482737


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
/*{{{*/  //template
#define rep(i,n) for(int i=0;i<n;i++)
constexpr int INF = numeric_limits<int>::max()/2;
constexpr long long LINF = numeric_limits<long long>::max()/3;
#define mp make_pair
#define pb push_back
#define eb emplace_back
#define fi first
#define se second
#define all(v) (v).begin(),(v).end()
#define sz(x) (int)(x).size()
#define debug(x) cerr<<#x<<":"<<x<<endl
#define debug2(x,y) cerr<<#x<<","<<#y":"<<x<<","<<y<<endl
//struct fin{ fin(){ cin.tie(0); ios::sync_with_stdio(false); } } fin_;
struct Double{ double d; explicit Double(double x) : d(x){} };
ostream& operator<<(ostream& os,const Double x){ os << fixed << setprecision(20) << x.d; return os; }
template<typename T> ostream& operator<<(ostream& os,const vector<T>& vec){ os << "["; for(const auto& v : vec){ os << v << ","; } os << "]"; return os; }
template<typename T,typename U> ostream& operator<<(ostream& os,const pair<T,U>& p){ os << "(" << p.first << ","<< p.second <<")"; return os; }
template<typename T> ostream& operator<<(ostream& os,const set<T>& st){ os<<"{"; for(T v:st) os<<v<<","; os <<"}"; return os; }
template<typename T,typename U> inline void chmax(T &x,U y){ if(y>x) x = y; }
template<typename T,typename U> inline void chmin(T &x,U y){ if(y<x) x = y; }
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<vi> vvi;
ll gcd(ll a,ll b){ if(b==0) return a; else return gcd(b,a%b); }
//constexpr double eps = 1e-14; 
constexpr double eps = 1e-10; 
constexpr ll mod = 1e9+7;
const int dx[]={1,0,-1,0} ,dy[] = {0,1,0,-1};
/*}}}*/

constexpr int max_n = 100005;

int N,M;
vector<int> g[max_n];

int main(){
    cin >> N >> M;
    rep(i,M){
        int a,b; cin >> a >> b;
        a--;b--;
        g[a].pb(b);
        g[b].pb(a);
    }


    int center = 0;

    set<int> st;
    st.insert(center);

    deque<int> deq;
    deq.push_front(center);

    if(g[center].size() == 1){
        int now = center;
        while(1){
            int nxt = -1;
            for(int nxt2 : g[now]) if(!st.count(nxt2)){
                nxt = nxt2;
                break;
            }
            if(nxt == -1) break;
            st.insert(nxt);
            deq.push_back(nxt);
            now = nxt;
        }
    }else{
        int now = center;
        while(1){
            int nxt = -1;
            for(int nxt2 : g[now]) if(!st.count(nxt2)){
                nxt = nxt2;
                break;
            }
            if(nxt == -1) break;
            st.insert(nxt);
            deq.push_back(nxt);
            now = nxt;
        }

        now = center;
        while(1){
            int nxt = -1;
            for(int nxt2 : g[now]) if(!st.count(nxt2)){
                nxt = nxt2;
                break;
            }
            if(nxt == -1) break;
            st.insert(nxt);
            deq.push_front(nxt);
            now = nxt;
        }
    }

    cout << deq.size() << endl;
    for(int v : deq){
        cout << v+1 << endl;
    }
}

Submission Info

Submission Time
Task B - Hamiltonish Path
User chakku000
Language C++14 (GCC 5.4.1)
Score 500
Code Size 3150 Byte
Status AC
Exec Time 283 ms
Memory 11392 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 19
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt
Case Name Status Exec Time Memory
sample_01.txt AC 2 ms 2560 KB
sample_02.txt AC 2 ms 2560 KB
sample_03.txt AC 2 ms 2560 KB
subtask_1_01.txt AC 66 ms 4736 KB
subtask_1_02.txt AC 21 ms 3072 KB
subtask_1_03.txt AC 62 ms 4864 KB
subtask_1_04.txt AC 71 ms 4736 KB
subtask_1_05.txt AC 70 ms 4736 KB
subtask_1_06.txt AC 75 ms 4736 KB
subtask_1_07.txt AC 73 ms 5888 KB
subtask_1_08.txt AC 73 ms 5760 KB
subtask_1_09.txt AC 283 ms 11392 KB
subtask_1_10.txt AC 23 ms 3328 KB
subtask_1_11.txt AC 28 ms 3328 KB
subtask_1_12.txt AC 2 ms 2560 KB
subtask_1_13.txt AC 2 ms 2560 KB