Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #define N 1005
- #define pb push_back
- #define INF int(1e9)
- #define mp make_pair
- #define x first
- #define y second
- using namespace std;
- pair<int, int> vect[N];
- vector< pair<int, int> > ans;
- int main() {
- int n, k;
- cin >> n >> k;
- for (int i = 0; i < n; i++) {
- int x, y;
- cin >> x >> y;
- vect[i] = mp(x, y);
- }
- sort(vect, vect + n);
- int t = 1;
- while (vect[t].x == vect[t - 1].x && t < n) t++;
- if (k == 1) {
- ans.pb( mp(vect[0].x, vect[0].y) );
- ans.pb( mp(vect[0].x, vect[0].y - 1) );
- ans.pb( mp(vect[0].x - 1, vect[0].y - 1) );
- ans.pb( mp(vect[0].x - 1, vect[0].y) );
- }
- if (k == 2) {
- ans.pb(vect[1]);
- ans.pb(vect[0]);
- ans.pb(mp(-INF, INF));
- }
- if (k > 2) {
- if (t >= k) {
- ans.pb(vect[k - 1]);
- ans.pb(vect[0]);
- ans.pb(mp(-INF, INF));
- }
- else {
- ans.pb( mp(vect[k - 1].x,-INF) );
- ans.pb( mp(-INF,-INF) );
- ans.pb( mp(-INF, INF) );
- ans.pb( mp(vect[k - 1].x - 1, INF) );
- ans.pb( vect[k - 1] );
- }
- }
- cout << ans.size() << endl;
- for (int i = ans.size() - 1; i >= 0; i--)
- cout << ans[i].first << " " << ans[i].second << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement