Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define ll long long
- int score[100009];
- vector <ll> pen[1000009];
- int main()
- {
- ll t;
- scanf("%lld", &t);
- map <ll, ll> par;
- while(t--)
- {
- ll n;
- scanf("%lld", &n);
- for(int i=0; i<n; i++)
- {
- scanf("%lld", &score[i+1]);
- pen[i+1].push_back(i+1);
- par[i+1] = i+1;
- }
- for(int i=1; i<=n; i++) cout << score[i] << endl;
- ll q, x, y, qu, x1, x2;
- scanf("%lld", &q);
- while(q--)
- {
- scanf("%lld", &qu);
- if(qu==1)
- {
- scanf("%lld%lld", &x, &y);
- if(score[x] > score[y])
- {
- score[x] += score[y];
- score[y] = 0;
- pen[x].push_back(y);
- par[y] = x;
- pen[y].clear();
- cout << score[x] << " " << score[y] << " " << par[y] << endl;
- }
- else if(score[x] < score[y])
- {
- score[y] += score[x];
- score[x] = 0;
- pen[y].push_back(x);
- par[x] = y;
- pen[x].clear();
- }
- }
- else if(qu==2)
- {
- scanf("%lld", &x1);
- ll sz = pen[x1].size();
- printf("%lld\n", sz);
- }
- else
- {
- scanf("%lld", &x2);
- printf("%lld\n", par[x2]);
- }
- }
- par.clear();
- for(int i=0; i<=n; i++)
- pen[i].clear();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement