제출 #747916

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