Advertisement
Guest User

G

a guest
Apr 30th, 2017
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.70 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long
  4. int score[100009];
  5. vector <ll> pen[1000009];
  6. int main()
  7. {
  8. ll t;
  9. scanf("%lld", &t);
  10.  
  11. map <ll, ll> par;
  12. while(t--)
  13. {
  14. ll n;
  15. scanf("%lld", &n);
  16. for(int i=0; i<n; i++)
  17. {
  18. scanf("%lld", &score[i+1]);
  19. pen[i+1].push_back(i+1);
  20. par[i+1] = i+1;
  21.  
  22. }
  23. for(int i=1; i<=n; i++) cout << score[i] << endl;
  24. ll q, x, y, qu, x1, x2;
  25. scanf("%lld", &q);
  26. while(q--)
  27. {
  28. scanf("%lld", &qu);
  29. if(qu==1)
  30. {
  31. scanf("%lld%lld", &x, &y);
  32. if(score[x] > score[y])
  33. {
  34. score[x] += score[y];
  35. score[y] = 0;
  36. pen[x].push_back(y);
  37. par[y] = x;
  38. pen[y].clear();
  39. cout << score[x] << " " << score[y] << " " << par[y] << endl;
  40. }
  41. else if(score[x] < score[y])
  42. {
  43. score[y] += score[x];
  44. score[x] = 0;
  45. pen[y].push_back(x);
  46. par[x] = y;
  47. pen[x].clear();
  48. }
  49. }
  50. else if(qu==2)
  51. {
  52. scanf("%lld", &x1);
  53. ll sz = pen[x1].size();
  54. printf("%lld\n", sz);
  55. }
  56. else
  57. {
  58. scanf("%lld", &x2);
  59. printf("%lld\n", par[x2]);
  60.  
  61. }
  62.  
  63. }
  64. par.clear();
  65. for(int i=0; i<=n; i++)
  66. pen[i].clear();
  67. }
  68.  
  69.  
  70. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement