Advertisement
farsid

Untitled

Mar 9th, 2013
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. #define filer() freopen("in.txt","r",stdin)
  2. #define filew() freopen("out.txt","w",stdout)
  3. #include<iostream>
  4. #include<stdio.h>
  5. #include<string.h>
  6. #include<math.h>
  7. #include<algorithm>
  8. #include<queue>
  9. #include<stack>
  10. #include<string>
  11. #include<vector>
  12. #include <map>
  13. #define INF 1<<29
  14. #define PI pair<int,int>
  15. #define f first
  16. #define s second
  17. #define SET(a, x) memset((a), (x), sizeof(a))
  18. #define pb push_back
  19. #define i64 long long
  20. #define MAXN 100000
  21. #define EPS (1e-9)
  22. using namespace std;
  23. typedef vector<int> VI;
  24. typedef vector<PI> vii;
  25. //i64 INF=(i64)((i64)1<<(i64)59);
  26.  
  27.  
  28.  
  29. int N,Q;
  30. vector<int>adj[100009];
  31. struct node
  32. {
  33. int x,y,ans;
  34. }query[MAXN+10];
  35. vector<int>B[MAXN+10];
  36. int vst[MAXN+10];
  37.  
  38. void DFS(int u)
  39. {
  40. vst[u]=1;
  41. int i,j,sz,v,ind,t;
  42. sz=B[u].size();
  43. for(i=0;i<sz;i++)
  44. {
  45. ind=B[u][i];
  46. if(query[ind].x==u)
  47. {
  48. v=query[ind].y;
  49. t=1;
  50. }
  51. else
  52. {
  53. v=query[ind].x;
  54. t=-1;
  55. }
  56. if(vst[v]==1)query[ind].ans=t;
  57. }
  58.  
  59. sz=adj[u].size();
  60. for(i=0;i<sz;i++)
  61. {
  62. v=adj[u][i];
  63. if(!vst[v])
  64. {
  65. DFS(v);
  66. }
  67. }
  68.  
  69.  
  70. vst[u]=2;
  71. }
  72.  
  73. int main()
  74. {
  75. //filer();
  76. int T,cas=0;
  77. int i,j,root,x,y;
  78. scanf("%d%d",&N,&Q);
  79. scanf("%d",&root);
  80. for(i=1;i<N;i++)
  81. {
  82. scanf("%d%d",&x,&y);
  83. adj[x].pb(y);
  84. //adj[y].pb(x);
  85. }
  86. for(i=0;i<Q;i++)
  87. {
  88. scanf("%d%d",&query[i].x,&query[i].y);
  89. query[i].ans=0;
  90. B[query[i].x].pb(i);
  91. B[query[i].y].pb(i);
  92. }
  93. DFS(root);
  94. for(i=0;i<Q;i++)printf("%d\n",query[i].ans);
  95. return 0;
  96. }
  97. /*
  98. Test Case:
  99.  
  100. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement