Input:
2 arrays (one with x co-ordinates and another with y co-ordinates) to describe the points
Objective:
To arrange in ascending order of the x-ordinates and if same then descending order of their y-ordinates
Approach:
Using c++ stl, vector, pair, sort method
#include<bits/stdc++.h>
using namespace std;
bool sortBylogic(const pair<int,int> &a,
const pair<int,int> &b)
{
if(a.first!=b.first)
return(a.first < b.first);
else
return(a.second > b.second);
}
int main()
{
//{4,3},{2,1},{2,6},{3,0} => 2,6 2,1 3,0 4,3
vector< pair <int,int> > pts; //both x and y coordinates of the point will be stored here as pairs
int inX[]={4,2,2,3};
int inY[]={3,1,6,0};
for(int i=0;i<4;i++)
{
pts.push_back(make_pair(inX[i],inY[i]));
}
sort(pts.begin(),pts.end(),sortBylogic);
for (int i=0; i<4; i++)
{
cout << pts[i].first << " "<< pts[i].second << endl;
}
}
No comments:
Post a Comment