fork download
  1. import java.util.*;
  2. import java.lang.*;
  3.  
  4. class Main{
  5. public static void main (String[] args) throws java.lang.Exception{
  6. Scanner sc = new Scanner(System.in);
  7. int n = sc.nextInt(); //rows
  8. int m = sc.nextInt(); //column
  9.  
  10. Integer costHor[]= new Integer[n-1]; //n-1
  11. Integer costVer[]= new Integer[m-1]; //m-1
  12.  
  13. for(int i = 0;i<n-1;i++){
  14. costHor[i] = sc.nextInt();
  15. }
  16. for(int i=0;i<m-1;i++){
  17. costVer[i] = sc.nextInt();
  18. }
  19.  
  20. // sorting both arrays
  21. Arrays.sort(costHor, Collections.reverseOrder());
  22. Arrays.sort(costVer, Collections.reverseOrder());
  23.  
  24. int h=0,v=0; //pointer
  25. int hp=1, vp=1;
  26. int cost=0;
  27.  
  28. //loop
  29. while(h<costHor.length && v<costVer.length){
  30. //for horizontal cut
  31. if(costVer[v]<=costHor[h]){
  32. cost += (vp* costHor[h]);
  33. h++;
  34. hp++;
  35. }else{ //vertical cut
  36. cost += (hp*costVer[v]);
  37. vp++;
  38. v++;
  39. }
  40. }
  41. //remaining
  42. while(h<costHor.length){
  43. cost += (vp* costHor[h]);
  44. h++;
  45. hp++;
  46. }
  47.  
  48. while(v<costVer.length){ //vertical cut
  49. cost += (hp*costVer[v]);
  50. vp++;
  51. v++;
  52. }
  53.  
  54. System.out.print("minimum cost: "+cost);
  55. }
  56. }
Success #stdin #stdout 0.16s 59056KB
stdin
4
6
4
1
2
2
1
3
1
4
stdout
minimum cost: 42