제출 #1254769

#제출 시각아이디문제언어결과실행 시간메모리
1254769nicolo_010Migrations (IOI25_migrations)C++20
0 / 100
30 ms1000 KiB
#include "migrations.h" #include <bits/stdc++.h> using namespace std; template <typename T> using v = vector<T>; using ll = long long; using pii = pair<int, int>; #define rep(i, k, n) for (int i = k; i < n; i++) v<v<int>> adj; int ans; int mx; int L; void dfs(int n, int d=0, int p=-1) { if (d > mx) { mx = d; ans = n; } for (auto x : adj[n]) { if (x == p) continue; dfs(x, d+1, n); } } int send_message(int N, int i, int Pi) { if (i == 1) { adj.resize(N); } adj[i].push_back(Pi); adj[Pi].push_back(i); if (i == N-14) { mx = 0; dfs(0); L = ans; return (L&1); } else if (i >= N-13) { mx = 0; dfs(0); if (L != ans) { L = ans; return 4; } else { int b = i-(N-14); // int k = L; rep(i, 0, b) { k /= 2; } return (1&k); } } else return 0; } std::pair<int, int> longest_path(std::vector<int> S) { int N = S.size(); int last4 = -1; int anss = 0; int b = 0; for (int i = N-14; i < N; i++) { if (S[i] == 4) last4 = i; else { if (S[i]) { anss += (1 << b); } } b++; } if (last4 != -1) return {0, last4}; else return {0, ans}; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...