Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- using namespace std;
- const int INF = 2e9;
- const int MXN = 1e5;
- struct group {
- int col, money, id;
- };
- bool cmp(group x, group y) {
- if (x.money != y.money)
- return x.money > y.money;
- return x.col < y.col;
- }
- int sum, n, m;
- group a[MXN];
- pair<int, int> t[MXN];
- int main()
- {
- scanf("%d", &n);
- for (int i = 1; i <= n; i++) {
- scanf("%d%d", &a[i].col, &a[i].money);
- a[i].id = i;
- }
- scanf("%d", &m);
- for (int i = 1; i <= m; i++) {
- scanf("%d", &t[i].first);
- t[i].second = i;
- }
- sort(t + 1, t + m + 1);
- sort(a + 1, a + n + 1, cmp);
- vector< pair<int, int> > ans;
- for (int i = 1; i <= n; i++) {
- for (int j = 1; j <= m; j++) {
- if (t[j].first >= a[i].col) {
- t[j].first = 0;
- sum += a[i].money;
- ans.push_back(make_pair(a[i].id, t[j].second));
- break;
- }
- }
- }
- printf("%d %d\n", ans.size(), sum);
- for (int i = 0; i < ans.size(); i++) {
- printf("%d %d\n", ans[i].first, ans[i].second);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement