Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- void funkcja(vector <int> &vec1, vector <int> &vec2, int suma, int c, int d){
- sort(vec1.begin(), vec1.end());
- sort(vec2.begin(), vec2.end());
- for(int l=vec2.size()-1; l>=0; --l){
- auto wsk =upper_bound(vec1.begin(), vec1.end(), vec2[l]);
- if(c>(*wsk-vec2[l])*d && wsk!=vec1.end())
- {
- suma-=(c-d*(*wsk-vec2[l]));
- vec1.erase(wsk);
- }
- }
- cout << suma << endl;
- }
- int main()
- {
- int t;
- cin>>t;
- for(int i=0; i<t; i++){
- int n, c, d;
- vector <int> vec1;
- vector <int> vec2;
- cin>>n>>c>>d;
- for(int j=0; j<n; ++j){
- int zmienna;
- cin>>zmienna;
- vec1.push_back(zmienna);
- cin>>zmienna;
- vec2.push_back(zmienna);
- }
- int suma=0;
- for(int k=0; k<n; k++){
- suma=suma+(c+d*(vec2[k]-vec1[k]));
- }
- funkcja(vec1, vec2, suma, c, d);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement