File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.util.* ;
3+ import java.io.* ;
4+
5+ class Solution
6+ {
7+ public static void main (String [] args ) throws Exception {
8+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
9+ StringTokenizer st = new StringTokenizer (br. readLine());
10+
11+ int N = Integer . parseInt(st. nextToken());
12+ int M = Integer . parseInt(st. nextToken());
13+
14+ int [] boy = new int [N ];
15+ int [] girl = new int [M ];
16+ int [][] dp = new int [N + 1 ][M + 1 ];
17+ st = new StringTokenizer (br. readLine());
18+ for (int i = 0 ; i < N ; i++ ) {
19+ boy[i] = Integer . parseInt(st. nextToken());
20+ }
21+ st = new StringTokenizer (br. readLine());
22+ for (int i = 0 ; i < M ; i++ ) {
23+ girl[i] = Integer . parseInt(st. nextToken());
24+ }
25+ Arrays . sort(boy);
26+ Arrays . sort(girl);
27+
28+ for (int i = 1 ; i <= N ; i++ ) {
29+ for (int j = 1 ; j <= M ; j++ ) {
30+ if (i == j) {
31+ dp[i][j] = dp[i- 1 ][j- 1 ] + Math . abs(boy[i- 1 ]- girl[j- 1 ]);
32+ }else if (i > j) {
33+ dp[i][j] = Math . min(dp[i- 1 ][j- 1 ] + Math . abs(boy[i- 1 ]- girl[j- 1 ]), dp[i- 1 ][j]);
34+ }else if (i < j) {
35+ dp[i][j] = Math . min(dp[i- 1 ][j- 1 ] + Math . abs(boy[i- 1 ]- girl[j- 1 ]), dp[i][j- 1 ]);
36+ }
37+ }
38+ }
39+ System . out. println(dp[N ][M ]);
40+ }
41+ }
42+
43+ ```
You can’t perform that action at this time.
0 commit comments