제출 #747952

#제출 시각아이디문제언어결과실행 시간메모리
747952saayan007City Mapping (NOI18_citymapping)C++17
13 / 100
1 ms852 KiB
#include "bits/stdc++.h" #include "citymapping.h" using namespace std; using ll = long long; #define eb emplace_back #define nl endl #define qry get_distance void find_roads(int N, int Q, int A[], int B[], int W[]) { deque<int> path; vector<int> node[N + 1]; for(int i = 2; i <= N; ++i) { int d = qry(1, i); node[d].eb(i); } /* for(int i = 1; i < N; ++i) { */ /* cout << i << ": "; */ /* for(int j : node[i]) cout << j << ' '; */ /* cout << nl; */ /* } */ path.eb(1); for(int i = 1; i <= N; ++i) { /* for(int x : path) cout << x << ' '; */ /* cout << nl; */ if((int)node[i].size() == 2) { int a = node[i][0], b = node[i][1]; if(qry(a, path.back()) == 1) swap(a, b); path.emplace_front(a); path.eb(b); } else if((int) node[i].size() == 1) { int a = node[i][0]; if(qry(a, path.back()) == 1) path.eb(a); else path.emplace_front(a); } } /* for(int x : path) cout << x << ' '; */ /* cout << nl; */ for(int i = 0; i < N - 1; ++i) { /* cout << path[i] << ' ' << path[i + 1] << ' ' << W[i] << nl; */ A[i] = path[i], B[i] = path[i + 1], W[i] = 1; } return; }
#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...