Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. using namespace std;
  5. void funkcja(vector <int> &vec1, vector <int> &vec2, int suma, int c, int d){
  6. sort(vec1.begin(), vec1.end());
  7. sort(vec2.begin(), vec2.end());
  8.  
  9. for(int l=vec2.size()-1; l>=0; --l){
  10. auto wsk =upper_bound(vec1.begin(), vec1.end(), vec2[l]);
  11. if(c>(*wsk-vec2[l])*d && wsk!=vec1.end())
  12. {
  13. suma-=(c-d*(*wsk-vec2[l]));
  14. vec1.erase(wsk);
  15. }
  16.  
  17. }
  18. cout << suma << endl;
  19. }
  20. int main()
  21. {
  22.  
  23. int t;
  24.  
  25. cin>>t;
  26. for(int i=0; i<t; i++){
  27. int n, c, d;
  28. vector <int> vec1;
  29. vector <int> vec2;
  30. cin>>n>>c>>d;
  31. for(int j=0; j<n; ++j){
  32. int zmienna;
  33. cin>>zmienna;
  34. vec1.push_back(zmienna);
  35. cin>>zmienna;
  36. vec2.push_back(zmienna);
  37. }
  38.  
  39. int suma=0;
  40. for(int k=0; k<n; k++){
  41. suma=suma+(c+d*(vec2[k]-vec1[k]));
  42. }
  43. funkcja(vec1, vec2, suma, c, d);
  44.  
  45. }
  46.  
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement