제출 #1217252

#제출 시각아이디문제언어결과실행 시간메모리
1217252cpdreamerStations (IOI20_stations)C++20
10 / 100
311 ms448 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; const long long INF = 1e17; typedef long long ll; const ll MOD = (ll)1e9+7; #define P pair #define S second #define F first #define pb push_back #define V vector #define all(v) v.begin(), v.end() V<int>adj[(int)80]; V<P<int,int>>vp(80); int cnt=0; void dfs(int n,int p) { vp[n].F=cnt; for (auto u:adj[n]) { if(u==p)continue; cnt++; dfs(u,n); } vp[n].S=cnt; } std::vector<int> label(int n, int k, std::vector<int> u, std::vector<int> v) { for (int i=0;i<n-1;i++) { adj[u[i]].pb(v[i]); adj[v[i]].pb(u[i]); } dfs(0,-1); V<int>l(n); for (int i=0;i<n;i++) { l[i]=80*vp[i].F+vp[i].S; } for (int i=0;i<n;i++) { adj[i].clear(); } return l; } bool check(int x,int y) { int r=x%80; int l=(x-r)/80; int n=(y-y%80)/80; return (n>=l && n<=r); } int find_next_station(int s, int t, std::vector<int> c) { for (int i=1;i<(int)c.size();i++) { if (check(c[i],t)) { return c[i]; } } return c[0]; }
#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...