fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int a[9];
  6. bool arr[9];
  7. for(int i=0;i<9;i++)
  8. arr[i]=true;
  9. for(int i=1;i<=8;i++)
  10. {
  11. cin>>a[i];
  12. }
  13. vector<int> vec[9];
  14. int n,x,y;
  15. long long sum=0;
  16. cin>>n;
  17. for(int i=0;i<n;i++)
  18. {
  19. cin>>x>>y;
  20. vec[x].push_back(y);
  21. vec[y].push_back(x);
  22. }
  23. for(int i=1;i<9;i++)
  24. {
  25. if(arr[i]==false)
  26. continue;
  27. sum=0;
  28. for(int j=0;j<vec[i].size();j++)
  29. sum+=a[vec[i][j]];
  30. if(sum>a[i])
  31. {
  32. arr[i]=false;
  33. for(int j=1;j<9;j++)
  34. vec[j].erase(remove(vec[j].begin(),vec[j].end(),i),vec[j].end());
  35. }
  36. else
  37. {
  38. for(int j=0;j<vec[i].size();j++)
  39. {
  40. arr[vec[i][j]]=false;
  41. for(int k=1;k<9;k++)
  42. vec[k].erase(remove(vec[k].begin(),vec[k].end(),vec[i][j]),vec[k].end());
  43. }
  44. }
  45.  
  46. }
  47. sum=0;
  48. for(int i=1;i<9;i++)
  49. {
  50. if(arr[i])
  51. cout<<i<<" ";
  52. }
  53. cout<<endl;
  54. cout<<sum;
  55. }
Success #stdin #stdout 0s 15240KB
stdin
13 14 5 2 3 4 1 9 
7
1 2
2 3
3 4
4 5
5 6
6 7
7 8
stdout
2 6 8 
0