Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <algorithm>
- using namespace std;
- struct vect
- {
- int x, y;
- vect() {}
- vect(int a, int b)
- {
- x = a, y = b;
- }
- void read()
- {
- scanf("%d %d", &x, &y);
- }
- };
- // определеим функцию для сравнения двух переменных нового типа
- // для того, чтобы корректно работала сортировка по возрастанию, нужно, чтобы она возвращала true, тогда и только тогда, когда первый аргумент строго меньше второго
- bool compare(vect a, vect b)
- {
- if (a.x == b.x)
- return a.y < b.y;
- return a.x < b.x;
- // такая функция позволяет отсортировать все векторы по x, а при равенстве - по y
- }
- const int N = int(1e5);
- vect points[N];
- int main()
- {
- int n;
- scanf("%d", &n);
- for (int i = 0; i < n; i++)
- points[i].read();
- sort(points, points + n, compare);
- // отличие от обычной сортировки - третий аргумент, это имя функции, которая будет заменять знак "меньше" (главное - не забыть, что имя нужно писать без скобок)
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement