#include #include #include #include #include using namespace std; int n,m,s,k; int dad[200111]; bool TFO[200111][22]; int dst[200111][22]; deque< pair > mydeq; vector Graph[200111]; int ans[200111]; int MIN(int a,int b) { if (a < b) return a; else return b; } void BFS01() { int i; memset(dst,-1,sizeof(dst)); memset(ans,-1,sizeof(ans)); mydeq.push_back(make_pair(s,1)); dst[s][1] = 0; while(!mydeq.empty()) { pair tp = mydeq.front(); mydeq.pop_front(); if (TFO[tp.first][tp.second]) continue; TFO[tp.first][tp.second] = true; int ver = tp.first; int energy = tp.second; bool freejump = false; if (ver > n) { ver -= n; freejump = true; } //cout<<"Visit "<