제출 #934060

#제출 시각아이디문제언어결과실행 시간메모리
934060sopaconkCity (JOI17_city)C++17
18 / 100
325 ms34620 KiB
#include "Encoder.h" #include<bits/stdc++.h> using namespace std; #define pb push_back #define deb(x) ; using lli=long long int; static lli aux=0; void dfs(int n , int par, vector<vector<int>> &adj, vector<pair<lli,lli>> &range ){ lli ini=aux; aux++; for(int x: adj[n]){ if(x==par) continue; dfs(x, n, adj, range); } lli fin=aux; aux++; range[n]={ini, fin}; } void Encode(int N, int A[], int B[]) { vector<vector<int>> adj (N); for(int i=0; i<N-1; ++i){ adj[A[i]].pb(B[i]); adj[B[i]].pb(A[i]); } vector<pair<lli,lli>> range (N); dfs(0,-1,adj, range); for (int i = 0; i < N; ++i) { lli ini=range[i].first; lli fin=range[i].second; lli dif=fin-ini; dif/=2; Code(i, ini*250000+dif); } }
#include "Device.h" #include<bits/stdc++.h> using namespace std; #define pb push_back #define deb(x) ; using lli=long long int; void InitDevice() { } int Answer(long long S, long long T) { lli difS=S%250000; lli iniS= (S-difS)/250000; lli difT=T%250000; lli iniT=(T-difT)/250000; difS*=2; difT*=2; lli finS=iniS+difS; lli finT=iniT+difT; if(iniT <= iniS && finS <= finT){ return 0; } if(iniS <= iniT && finT <= finS){ return 1; } return 2; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...