Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <iostream>
- #include <fstream>
- #include <utility>
- #include <cstdio>
- #include <string>
- #include <vector>
- #include <ctime>
- #include <queue>
- #include <cmath>
- #include <map>
- #include <set>
- #include <iomanip>
- #define task "file"
- using namespace std;
- int n;
- vector<pair<double, int> > a;
- int BS(double x){
- int l = -1, r = n;
- while(r - l > 1){
- int m = (r + l) / 2;
- if(a[m].first > x)
- r = m;
- else
- l = m;
- }
- return l;
- }
- int main(){
- //ios::syncs_with_stdio(false);
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- cout << setprecision(3);
- int q;
- cin >> n;
- for(int i = 0; i < n; i++){
- int dop;
- double dop1;
- cin >> dop >> dop1;
- a.push_back(make_pair(dop1, dop));
- }
- sort(a.begin(), a.end());
- int k = 0;
- for(int i = n - 1; i >= 0; i --){
- k += a[i].second;
- a[i].second = k;
- }
- cin >> q;
- //vector<double> b(q);
- for(int i = 0; i < q; i++){
- double dop;
- cin >> dop;
- //b.push_back(dop);
- int low = BS(dop) + 1;
- cout << a[low].second << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement