학사 나부랭이
백준 11651 - 퀵 정렬 본문
#include <iostream>
using namespace std;
void xchg(int** arr, int i, int j) {
int tmpx = arr[0][i], tmpy = arr[1][i];
arr[0][i] = arr[0][j];
arr[1][i] = arr[1][j];
arr[0][j] = tmpx;
arr[1][j] = tmpy;
}
void sort(int** arr, int high, int low) {
int j = low;
if (high <= low) return;
for (int i = low + 1; i <= high; i++) {
if (arr[1][i] < arr[1][low]) {
j++;
xchg(arr, i, j);
}
else if (arr[1][i] == arr[1][low]) {
if (arr[0][i] < arr[0][low]) {
j++;
xchg(arr, i, j);
}
}
}
xchg(arr, low, j);
sort(arr, j - 1, low);
sort(arr, high, j + 1);
return;
}
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
int n, ** xy;
xy = new int* [2];
cin >> n;
for (int i = 0; i < 2; i++) xy[i] = new int[n];
for (int i = 0; i < n; i++) cin >> xy[0][i] >> xy[1][i];
sort(xy, n - 1, 0);
for (int i = 0; i < n; i++) cout << xy[0][i] << " " << xy[1][i] << "\n";
delete[] xy;
}
'塵箱 > 코드 삽질' 카테고리의 다른 글
백준 2869 - 조건 적확하게 설정하기 (0) | 2021.04.20 |
---|---|
백준 15829 - 모듈러 연산 (0) | 2021.04.20 |
백준 10866 - 덱 (0) | 2021.04.19 |
백준 1494 - 다이나믹 프로그래밍, 이진 탐색 (0) | 2021.04.17 |
Floyd algorithm (0) | 2021.04.16 |
Comments