Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <vector>using namespace std;const int Max=100001;const int MOD=142857;int N,M,K,V[Max];vector<int> fathers[Max];bool done[Max];void calc(int pos){if(done[pos])return;done[pos]=true;for(int i=0;i<fathers[pos].size();++i){if(!done[fathers[pos][i]])calc(fathers[pos][i]);V[pos]+=V[fathers[pos][i]];V[pos]%=MOD;}}void print(){for(int i=1;i<=N;++i)printf("%d ",V[i]);printf("\n");}int main()