fork(1) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.io.*;
  4. import java.util.*;
  5. class Bookshelves
  6. {
  7. public static int solve(int a[], int b[], int N, int K)
  8. {
  9. int i,p1=N,p2=-1,skew=0;
  10.  
  11. if(N==1)
  12. return b[N-1]+a[N-1];
  13.  
  14. for(i=0;i<K;i++)
  15. {
  16. p1--;
  17. p2++;
  18. if(p1>=0&&a[p1]>b[p2])
  19. {
  20. if(p1==0)
  21. skew=b[N-1]+b[p2];
  22. else
  23. {
  24. if(b[p2]>a[p1-1])
  25. {
  26. skew=b[N-1]+b[p2];
  27. break;
  28. }
  29. else
  30. skew=b[N-1]+a[p1-1];
  31. }
  32. }
  33. else
  34. break;
  35. }
  36. return skew;
  37. }
  38. public static void main(String args[]) throws IOException
  39. {
  40.  
  41. int i,N,K;
  42.  
  43. String s[]=br.readLine().trim().split(" ");
  44.  
  45. N=Integer.parseInt(s[0]);
  46. K=Integer.parseInt(s[1]);
  47.  
  48. int a[]=new int[N];
  49. int b[]=new int[N];
  50.  
  51. for(i=2;i<N+2;i++)
  52. a[i-2]=Integer.parseInt(s[i]);
  53.  
  54. for(i=N+2;i<2*N+2;i++)
  55. b[i-N-2]=Integer.parseInt(s[i]);
  56.  
  57. Arrays.sort(a);
  58. Arrays.sort(b);
  59.  
  60.  
  61. if(a[N-1]<b[N-1])
  62. System.out.println(solve(a,b,N,K));
  63. else if(a[N-1]>b[N-1])
  64. System.out.println(solve(b,a,N,K));
  65. else
  66. {
  67. int c=solve(a,b,N,K);
  68. int d=solve(b,a,N,K);
  69.  
  70. System.out.println((int)Math.min(c, d));
  71.  
  72. }
  73. }
  74.  
  75. }
  76.  
Success #stdin #stdout 0.05s 4386816KB
stdin
5 1 3 5 2 7 1 14 2 3 10 4
stdout
19