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