Advertisement
Guest User

Untitled

a guest
Apr 9th, 2016
290
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. bool vis_table[1009];
  4. int request[1009];
  5. bool cmp(const pair<pair <int, int>, int > &a,const pair<pair < int, int >, int> &b)
  6. {
  7.     if(a.first.second >= b.first.second)
  8.         return true;
  9.     return false;
  10. }
  11. int main()
  12. {
  13.     int n, ans = 0, c = 0;
  14.     cin >>n;
  15.     vector <pair < pair<int, int>, int > >a(n);
  16.     for(int i = 0;i < n;i++){
  17.         cin >> a[i].first.first >> a[i].first.second;
  18.         a[i].second = i + 1;
  19.     }
  20.     sort(a.begin(), a.end(), cmp);
  21.     int k;
  22.     cin >> k;
  23.     vector <pair <int, int> > table(k);
  24.     for(int i = 0;i < k;i++)
  25.     {
  26.         cin >> table[i].first;
  27.         table[i].second = i + 1;
  28.     }
  29.     sort(table.begin(), table.end());
  30.     for(int i = 0;i < n;i++)
  31.     {
  32.         //int okTable = lower_bound(table.begin(), table.end(), make_pair(a[i].first.first, INT_MIN)) - table.begin();
  33.         int okTable = k, f = 1;
  34.         for(int j = 0; f && j < k;j++)
  35.             if(table[j].first >= a[i].first.first && !vis_table[table[j].second])
  36.                 okTable = j, f = 0;
  37.  
  38. //        while(vis_table[okTable] && okTable < k)
  39. //            okTable++;
  40. //    printf("okTable = %d\n", okTable);
  41.         if(okTable < k)
  42.         {
  43.             c++;
  44.             ans += a[i].first.second;
  45.             vis_table[table[okTable].second] = true;
  46.             request[table[okTable].second] = a[i].second;
  47.  
  48.         }
  49.  
  50.     }
  51.     cout << c << " " << ans <<endl;
  52.     for(int i = 1;i <= 1000;i++)
  53.         if(vis_table[i])
  54.             cout << request[i] << " " << i <<endl;
  55.  
  56.  
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement