제출 #1009533

#제출 시각아이디문제언어결과실행 시간메모리
1009533salmonCity (JOI17_city)C++14
0 / 100
92 ms21472 KiB
#include "Encoder.h" #include <bits/stdc++.h> using namespace std; static vector<int> adjlst[250100]; static long long int pre[250100]; static long long int post[250100]; static int cont = 0; static vector<long long int> plow; static void dfs(int i, int p){ pre[i] = cont; cont++; for(int j : adjlst[i]){ if(j == p) continue; dfs(j,i); } post[i] = *lower_bound(plow.begin(),plow.begin(),cont - pre[i]); cont = post[i] + pre[i]; } void Encode(int N, int A[], int B[]){ for(int i = 0; i < N - 1; ++i) { adjlst[A[i]].push_back(B[i]); adjlst[B[i]].push_back(A[i]); } plow = {1}; for(int i = 1; i < 400; i++){ plow.push_back(ceil(plow.back() * 1.05) + 0.1); } dfs(0,-1); for(int i = 0; i < N; i++){ Code(i,(post[i]<<22)+pre[i]); } } /*int main(){ plow = {1}; for(int i = 1; i < 400; i++){ plow.push_back(ceil(plow.back() * 1.05) + 0.1); } printf("%lld",plow[18]); }*/
#include "Device.h" void InitDevice(){ } int Answer(long long S, long long T){ long long int s1 = S % (1LL<<22); long long int e1 = (S>>22); e1 += s1; long long int s2 = T % (1LL<<22); long long int e2 = (T>>22); e2 += s2; if(s1 <= s2 && e2 <= e1){ return 1; } if(s2 <= s1 && e1 <= e2){ return 0; } return 2; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...