제출 #101118

#제출 시각아이디문제언어결과실행 시간메모리
101118gs14004City (JOI17_city)C++17
22 / 100
514 ms56792 KiB
#include "Encoder.h" #include <bits/stdc++.h> using namespace std; const int MAXN = 250005; vector<int> gph[MAXN]; int dfn[MAXN], sz[MAXN], piv; void dfs(int x, int p){ sz[x] = 1; dfn[x] = ++piv; for(auto &i : gph[x]){ if(i != p){ dfs(i, x); sz[x] += sz[i]; } } } void Encode(int N, int A[], int B[]){ for(int i=0; i<N-1; i++){ gph[A[i]].push_back(B[i]); gph[B[i]].push_back(A[i]); } dfs(0, -1); for (int i = 0; i < N; ++i) { Code(i, ((long long)dfn[i] << 18) + sz[i]); } }
#include "Device.h" void InitDevice(){ } int Answer(long long S, long long T){ int dfnS = (S >> 18); int szS = S & ((1<<18) - 1); int dfnT = (T >> 18); int szT = T & ((1<<18) - 1); if(dfnS <= dfnT && dfnT + szT <= dfnS + szS){ return 1; } if(dfnT <= dfnS && dfnS + szS <= dfnT + szT){ return 0; } return 2; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...