#include<stdio.h> #include<algorithm> #define MAX 1010 int n, m, N[MAX], M[MAX], d[MAX][MAX]; int abs(int i) { if (i>0) { return i; } else { return -i; } } int main() { int i, j; scanf("%d%d", &n, &m); for (i = 1; i <= n; i++) { scanf("%d", &N[i]); } for (i = 1; i <= m; i++) { scanf("%d", &M[i]); } std::sort(N + 1, N + 1 + n); std::sort(M + 1, M + 1 + m); for (i = 1; i <= n; i++) { for (j = 1; j <= m; j++) { d[i][j] = d[i - 1][j - 1] + abs(N[i] - M[j]); if (i>j&&d[i][j]>d[i - 1][j]) { d[i][j] = d[i - 1][j]; } if (j>i&&d[i][j]>d[i][j - 1]) { d[i][j] = d[i][j - 1]; } } } printf("%d", d[n][m]); return 0; }
1727번: 커플 만들기
https://www.acmicpc.net/problem/1727
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기