제출 #1303227

#제출 시각아이디문제언어결과실행 시간메모리
1303227SabaKharebava이주 (IOI25_migrations)C++20
0 / 100
27 ms480 KiB
#include<bits/stdc++.h> using namespace std; #define pb push_back int p[10001], depth[10001]; int mx = 0; vector<int> ter; void tternary() { int val = 1; while (val*3 < mx) val *= 3; vector<int> v; do { v.pb(mx/val); mx %= val; val /= 3; } while (val > 1); ter = v; } int fternary(vector<int> v) { int val = 1, num = 0; for (int i = v.size()-1; i >= 0; i--) { num += val*v[i]; val *= 3; } return num; } int send_message(int N, int i, int Pi) { p[i] = Pi; depth[i] = depth[Pi]+1; if (i == N-ter.size()-2) { for (int ind = 1; ind <= i; ind++) if (depth[mx] < depth[ind]) mx = ind; return 0; } if (i > N-ter.size()-2) { if (depth[i] > depth[mx]) return 4; int pw = N-i; return ter[pw]; } return 0; } pair<int, int> longest_path(vector<int> S) { for (int i = S.size()-1; i >= 1; i--) { if (S[i] == 4) return make_pair(0, i); } vector<int> teri; for (int i = S.size()-1; i >= S.size()-ter.size(); i--) teri.pb(S[i]); return make_pair(0, fternary(teri)); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...