제출 #99340

#제출 시각아이디문제언어결과실행 시간메모리
99340TadijaSebezCity (JOI17_city)C++11
22 / 100
379 ms37192 KiB
#include "Encoder.h" #define ll long long const int N=250050; const int M=2*N; int fir[N],go[M],tot,f[M]; void Add(int u, int v){ tot++;f[tot]=v;go[tot]=fir[u];fir[u]=tot;} void AddEdge(int u, int v){ Add(u,v);Add(v,u);} int lid[N],rid[N],tid; void DFS(int u, int p) { lid[u]=tid++; for(int i=fir[u];i;i=go[i]) if(f[i]!=p) DFS(f[i],u); rid[u]=tid; } void Encode(int n, int a[], int b[]) { for(int i=0;i<n-1;i++) AddEdge(a[i],b[i]); DFS(0,-1); for(int i=0;i<n;i++) Code(i,(ll)lid[i]*N+rid[i]-lid[i]); }
#include "Device.h" const int N=250050; void InitDevice() { } int Answer(long long S, long long T) { int l=S/N,r=l+S%N; int L=T/N,R=L+T%N; if(l<=L && R<=r) return 1; if(L<=l && r<=R) return 0; return 2; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...