Submission #96691

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
966912019-02-11 02:42:31diamond_dukeWerewolf (IOI18_werewolf)C++11
100 / 100
1453 ms177112 KiB
#include "werewolf.h"
#include <algorithm>
#include <utility>
namespace DSU
{
int fa[600005];
inline void init(int n) { for (int i = 0; i < n; i++) fa[i] = i; }
int getfa(int u) { return u == fa[u] ? u : fa[u] = getfa(fa[u]); }
}
struct Tree
{
int fa[600005][25], val[600005], st[600005], en[600005], clk;
std::vector<int> son[600005];
void dfs(int u, int f = -1)
{
fa[u][0] = f;
for (int i = 1; i < 20; i++)
fa[u][i] = fa[u][i - 1] == -1 ? -1 : fa[fa[u][i - 1]][i - 1];
st[u] = clk++;
for (int v : son[u])
dfs(v, u);
en[u] = clk - 1;
}
template <typename funcT>
inline void init(int n, std::vector<int> &eu, std::vector<int> &ev, funcT func)
{
int m = eu.size();
DSU::init(n + m);
std::vector<int> edge(m);
for (int i = 0; i < m; i++)
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...