Advertisement
Guest User

Untitled

a guest
Nov 24th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.50 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define M_PI 3.14159265358979323846
  3. typedef long long ll;
  4. typedef long double ld;
  5.  
  6. #include<vector>
  7. #include<string>
  8. #include<algorithm>
  9. #include<iostream>
  10. #include<map>
  11. #include<set>
  12. #include<queue>
  13. #include<stack>
  14. #include<iomanip>
  15. #include<math.h>
  16. #include <string>
  17. #include<cmath>
  18. #include<functional>
  19. #include<fstream>
  20. #include<unordered_set>
  21. #include<unordered_map>
  22.  
  23. using namespace std;
  24.  
  25. ll INF = 1e9;
  26.  
  27. map<int, int>p[100001];
  28.  
  29. int parent(int color, int v) {
  30. return p[color].find(v) == p[color].end() ? v : p[color][v] = parent(color, p[color][v]);
  31. }
  32.  
  33. void unite(int a, int b, int color) {
  34. if (rand() % 2)
  35. swap(a, b);
  36. a = parent(color, a);
  37. b = parent(color, b);
  38. p[color][a] = b;
  39. }
  40.  
  41. int main()
  42. {
  43. cin.tie(0);
  44. cout.tie(0);
  45. ios_base::sync_with_stdio(false);
  46. int n, m;
  47. cin >> n >> m;
  48. vector<vector<int>>v(n + 1);
  49. for (int i = 0; i < m; i++) {
  50. int a, b, c;
  51. cin >> a >> b >> c;
  52. unite(a, b, c);
  53. v[a].push_back(c);
  54. v[b].push_back(c);
  55. }
  56. for (int i = 1; i <= n; i++) {
  57. sort(v[i].begin(), v[i].end());
  58. v[i].erase(unique(v[i].begin(), v[i].end()), v[i].end());
  59. }
  60. int q;
  61. cin >> q;
  62. //map<pair<int, int>, int>ans;
  63. for (int i = 0; i < q; i++) {
  64. int a, b;
  65. cin >> a >> b;
  66. vector<int>colors;
  67. if (v[a].size() < v[b].size())
  68. colors = v[a];
  69. else
  70. colors = v[b];
  71. int sum = 0;
  72. for (auto c : colors) {
  73. if (parent(c, a) == parent(c, b))
  74. sum++;
  75. }
  76. cout << sum << '\n';
  77. }
  78.  
  79.  
  80. return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement