Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- struct M//структура для хранения места.
- {
- int v, i, j;
- };
- main()
- {
- int n, m, k, t;
- cin >> n >> m >> k >> t;
- vector<vector<int>> p(n + 1, vector<int>(m + 1));//индексация с 1, чтобы было проще.
- for(int i = 1; i <= n; i++)
- for(int j = 1; j <= m; j++)
- cin >> p[i][j];
- while(t--)
- {
- int x, y;
- cin >> x >> y;
- p[x][y] = -1;
- }
- vector<M> ms;
- for(int i = 1; i <= n; i++)
- for(int j = 1; j <= m; j++)
- ms.push_back({p[i][j], i, j});
- sort(ms.begin(), ms.end(), [](const M left, const M right)
- {
- if(left.v != right.v)
- return left.v > right.v;
- else if(left.i != right.i)
- return left.i < right.i;
- else
- return left.j < right.j;
- });
- vector<M> ans;
- long long sum = 0;
- for(int i = 0; i <= k; i++)
- sum += ms[i].v, ans.push_back(ms[i]);
- sort(ans.begin(), ans.end(), [](const M left, const M right)
- {
- if(left.i != right.i)
- return left.i < right.i;
- else
- return left.j < right.j;
- });
- cout << sum << '\n';
- for(auto k : ans)
- cout << k.i << ' ' << k.j << '\n';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement