제출 #1296076

#제출 시각아이디문제언어결과실행 시간메모리
1296076eri16기지국 (IOI20_stations)C++20
0 / 100
8 ms484 KiB
#include "stations.h" #include <bits/stdc++.h> using namespace std; vector<int> label(int n, int k, vector<int> u, vector<int> v) { vector<vector<int>> adj(n+1); for (int i=0; i<n-1; i++) { adj[u[i]+1].push_back(v[i]+1); adj[v[i]+1].push_back(u[i]+1); } vector <int> lbl(n+1); for (int i=1; i<=n; i++){ int ans=0; for (int j=0; j<adj[i].size(); j++){ int visited[n+1]={0}; visited[i]=1; visited[adj[i][j]]=1; queue <int> q; int tttt=adj[i][j]; for (int ij=0; ij<adj[tttt].size(); ij++){ q.push(adj[tttt][ij]); } while (q.size()){ int x=q.front(); q.pop(); if (visited[x]==0){ visited[x]=1; ans=ans*10+x; for (int ij=0; ij<adj[x].size(); ij++){ q.push(adj[x][ij]); } } } ans=ans*10+adj[i][j]; } ans=ans*10+i; lbl[i-1]=ans; } return lbl; } int find_next_station(int s, int t, vector <int> cp){ int target=t%10; vector <int> c; while (s>0){ c.push_back(s%10); s=s/10; } reverse(c.begin(),c.end()); for (int i=0; i<c.size(); i++){ if (c[i]==t){ for (int j=i; j<c.size(); j++){ for (int z=0; z<cp.size(); z++){ if (cp[z]%10-1==c[j]){return cp[z];} } } } } return cp[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...