66import java .util .StringTokenizer ;
77
88public class _15720 {
9+
910 public static void main (String [] args ) throws IOException {
1011 BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
1112 BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (System .out ));
@@ -15,45 +16,60 @@ public static void main(String[] args) throws IOException {
1516 int c = Integer .parseInt (st .nextToken ());
1617 int d = Integer .parseInt (st .nextToken ());
1718
18- int min = Math .min (b , Math .min (c , d ));
19- int totalPrice = 0 ;
20- int discountPrice = 0 ;
21- int price = 0 ;
19+ Integer [] burger = readIntArray (br .readLine (), b );
20+ Integer [] sideMenu = readIntArray (br .readLine (), c );
21+ Integer [] beverage = readIntArray (br .readLine (), d );
2222
23- Integer [] burger = new Integer [b ];
24- Integer [] sideMenu = new Integer [c ];
25- Integer [] beverage = new Integer [d ];
23+ int totalPrice = sum (burger ) + sum (sideMenu ) + sum (beverage );
2624
27- st = new StringTokenizer (br .readLine ());
28- for (int i = 0 ; i < b ; i ++) {
29- burger [i ] = Integer .parseInt (st .nextToken ());
30- totalPrice += burger [i ];
31- }
32- Arrays .sort (burger , Collections .reverseOrder ());
25+ sortDesc (burger );
26+ sortDesc (sideMenu );
27+ sortDesc (beverage );
3328
34- st = new StringTokenizer (br .readLine ());
35- for (int i = 0 ; i < c ; i ++) {
36- sideMenu [i ] = Integer .parseInt (st .nextToken ());
37- totalPrice += sideMenu [i ];
38- }
39- Arrays .sort (sideMenu , Collections .reverseOrder ());
29+ int discountPrice = 0 ;
30+ int burgerSetCount = Math .min (b , Math .min (c , d ));
4031
41- st = new StringTokenizer (br .readLine ());
42- for (int i = 0 ; i < d ; i ++) {
43- beverage [i ] = Integer .parseInt (st .nextToken ());
44- totalPrice += beverage [i ];
32+ for (int i = 0 ; i < burgerSetCount ; i ++) {
33+ int setSum = burger [i ] + sideMenu [i ] + beverage [i ];
34+ discountPrice += (setSum * 9 ) / 10 ;
4535 }
46- Arrays .sort (beverage , Collections .reverseOrder ());
4736
48- for (int i = 0 ; i < min ; i ++)
49- discountPrice += (int ) ((burger [i ] + sideMenu [i ] + beverage [i ]) * 0.9 );
37+ discountPrice += sumFrom (burger , burgerSetCount );
38+ discountPrice += sumFrom (sideMenu , burgerSetCount );
39+ discountPrice += sumFrom (beverage , burgerSetCount );
5040
51- for (int i = min ; i < b ; i ++) price += burger [i ];
52- for (int i = min ; i < c ; i ++) price += sideMenu [i ];
53- for (int i = min ; i < d ; i ++) price += beverage [i ];
54-
55- bw .write (totalPrice + "\n " + (discountPrice + price ));
41+ bw .write (totalPrice + "\n " + discountPrice );
5642 bw .flush ();
5743 bw .close ();
5844 }
45+
46+ private static Integer [] readIntArray (String line , int n ) {
47+ Integer [] arr = new Integer [n ];
48+ StringTokenizer st = new StringTokenizer (line );
49+ for (int i = 0 ; i < n ; i ++) {
50+ arr [i ] = Integer .parseInt (st .nextToken ());
51+ }
52+ return arr ;
53+ }
54+
55+ private static void sortDesc (Integer [] arr ) {
56+ Arrays .sort (arr , Collections .reverseOrder ());
57+ }
58+
59+ private static int sum (Integer [] arr ) {
60+ int s = 0 ;
61+ for (int v : arr ) {
62+ s += v ;
63+ }
64+ return s ;
65+ }
66+
67+ private static int sumFrom (Integer [] arr , int from ) {
68+ int s = 0 ;
69+ for (int i = from ; i < arr .length ; i ++) {
70+ s += arr [i ];
71+ }
72+ return s ;
73+ }
74+
5975}
0 commit comments