제출 #1087040

#제출 시각아이디문제언어결과실행 시간메모리
1087040shidou26어르신 집배원 (BOI14_postmen)C++14
100 / 100
300 ms95680 KiB
#include <bits/stdc++.h>
using namespace std;

#define endl '\n'
#define all(v) v.begin(), v.end()

typedef long long ll;
typedef pair<int, int> ii;
typedef pair<ll, int> li;

const int N = 1e6 + 3;

int n, m;
int eu[N], ev[N];
vector<int> adj[N];

bool vst[N], used[N];
vector<int> nodes;

void prepare() {

}

void input() {
    cin >> n >> m;

    for(int i = 1; i <= m; i++) {
        int u, v; cin >> u >> v;
        eu[i] = u;
        ev[i] = v;
        adj[u].push_back(i);
        adj[v].push_back(i);
    }
}

void dfs(int u) {
    if(vst[u]) {
        while(!nodes.empty()) {
            int node = nodes.back();
            cout << node << " ";
            if(node == u) break;
            vst[node] = false;
            nodes.pop_back();
        }
        cout << endl;
    }else {
        nodes.push_back(u);
        vst[u] = true;
    }

    while(!adj[u].empty()) {
        int id = adj[u].back(); adj[u].pop_back();
        if(!used[id]) {
            used[id] = true;
            int v = eu[id] + ev[id] - u;
            dfs(v);
            break;
        }
    }
}

void process() {
    for(int i = 1; i <= n; i++) {
        if(!adj[i].empty()) dfs(i);
    }
}

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    #define task "kurumi"
    if(fopen(task".INP", "r")) {
        freopen(task".INP", "r", stdin);
        freopen(task".OUT", "w", stdout);
    }

    prepare();

    int testcase = 1; // cin >> testcase;
    for(int i = 1; i <= testcase; i++) {
        input();
        process();
    }

    return 0;
}

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

postmen.cpp: In function 'int main()':
postmen.cpp:74:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   74 |         freopen(task".INP", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
postmen.cpp:75:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   75 |         freopen(task".OUT", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...