Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- vector<int>connect[200000];
- int mafia[200000],moves,ager[200000],porer[200000];
- void traverse(int cno,int par)
- {
- ager[cno]=1;
- for(int i=0;i<connect[cno].size();i++)
- {
- int child=connect[cno][i];
- if(child==par)
- continue;
- traverse(child,cno);
- ager[cno]+=ager[child];
- mafia[cno]+=mafia[child];
- moves+=(abs(mafia[child]-ager[child]));
- }
- }
- int main()
- {
- int t,cas,city,n,a,b,c,d,x,y;
- cin>>t;
- for(cas=1;cas<=t;cas++)
- {
- cin>>n;
- moves=0;
- for(int i=0;i<n;i++)
- {
- connect[i].clear();
- }
- while(n--)
- {
- cin>>city;
- cin>>mafia[city]>>x;
- while(x--)
- {
- cin>>a;
- connect[city].push_back(a);
- connect[a].push_back(city);
- }
- }
- traverse(1,0);
- cout<<"Case "<<cas<<": "<<moves<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement