Pagini recente » Cod sursa (job #2516335) | Cod sursa (job #631969) | Cod sursa (job #2490321) | Cod sursa (job #2935225) | Cod sursa (job #2614961)
#include <fstream>
#include <vector>
using namespace std;
ifstream f("heavypath.in");
ofstream g("heavypath.out");
const int NMAX = 1e5 + 5, ROOT = 1;
int N, Q, A[NMAX];
vector < int > G[NMAX];
bool Sel[NMAX];
static inline void Read ()
{
f.tie(nullptr);
f >> N >> Q;
for(int i = 1; i <= N; ++i)
f >> A[i];
for(int i = 1; i < N; ++i)
{
int X = 0, Y = 0;
f >> X >> Y;
G[X].push_back(Y);
G[Y].push_back(X);
}
return;
}
static inline void Go (int Node, int Lvl)
{
Sel[Node] = 1;
for(auto it : G[Node])
if(!Sel[it])
Go(it, Lvl + 1);
return;
}
static inline void Precalculation ()
{
Go(ROOT, 1);
return;
}
int main()
{
Read();
Precalculation();
return 0;
}