Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include<vector>
- #include<algorithm>
- #define mp make_pair
- using namespace std;
- bool mySort(const pair<int, int> &a, const pair<int, int> &b, int sr, int sc){
- if((abs(a.first - sr) + abs(a.second - sc)) == (abs(b.first - sr) + abs(b.second - sc))){
- return a.first < b.first ? true : false;
- }
- return (abs(a.first - sr) + abs(a.second - sc)) < (abs(b.first - sr) + abs(b.second - sc)) ? true : false;
- }
- class matrixSort{
- public:
- int sr, sc;
- matrixSort(int sr, int sc){
- this-> sr = sr;
- this-> sc = sc;
- }
- bool operator()(const pair<int, int> &a, const pair<int, int> &b){
- return mySort(a, b, sr, sc);
- }
- };
- int main()
- {
- int r, c, sr, sc;
- cin >> r >> c >> sr >> sc;
- vector<pair<int, int> > v;
- for(int i = 0; i < r; i++)
- for(int j = 0; j < c; j++){
- v.push_back(mp(i, j));
- }
- sort(v.begin(), v.end(), matrixSort(sr, sc));
- for(auto i : v){
- cout << "(" << i.first << ", " << i.second << "), ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement