Guest User

Untitled

a guest
Mar 17th, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.35 KB | None | 0 0
  1. import java.util.*;
  2.  
  3. class Main {
  4. static int max = -1000000000;
  5. static int min = 1000000000;
  6.  
  7. public static void main(String[] args) {
  8. Scanner sc = new Scanner(System.in);
  9. int n = sc.nextInt();
  10. int[] a = new int[n];
  11. for (int z = 0; z < n; z++) {
  12. a[z] = sc.nextInt();
  13. }
  14. int add = sc.nextInt();
  15. int sub = sc.nextInt();
  16. int mul = sc.nextInt();
  17. int div = sc.nextInt();
  18. ad(a, a[0], 1, n - 1, add, sub, mul, div);
  19. su(a, a[0], 1, n - 1, add, sub, mul, div);
  20. mu(a, a[0], 1, n - 1, add, sub, mul, div);
  21. di(a, a[0], 1, n - 1, add, sub, mul, div);
  22. System.out.println(max);
  23. System.out.println(min);
  24. sc.close();
  25. }
  26.  
  27. private static void mu(int[] a, int cur, int j, int k, int add, int sub, int mul, int div) {
  28. if (k == 0) {
  29. max = Math.max(cur, max);
  30. min = Math.min(cur, min);
  31. } else if (mul != 0) {
  32. ad(a, cur * a[j], j + 1, k - 1, add, sub, mul - 1, div);
  33. su(a, cur * a[j], j + 1, k - 1, add, sub, mul - 1, div);
  34. mu(a, cur * a[j], j + 1, k - 1, add, sub, mul - 1, div);
  35. di(a, cur * a[j], j + 1, k - 1, add, sub, mul - 1, div);
  36. }
  37. }
  38.  
  39. private static void di(int[] a, int cur, int j, int k, int add, int sub, int mul, int div) {
  40. if (k == 0) {
  41. max = Math.max(cur, max);
  42. min = Math.min(cur, min);
  43. } else if (div != 0) {
  44. ad(a, cur / a[j], j + 1, k - 1, add, sub, mul, div - 1);
  45. su(a, cur / a[j], j + 1, k - 1, add, sub, mul, div - 1);
  46. mu(a, cur / a[j], j + 1, k - 1, add, sub, mul, div - 1);
  47. di(a, cur / a[j], j + 1, k - 1, add, sub, mul, div - 1);
  48. }
  49. }
  50.  
  51. private static void su(int[] a, int cur, int j, int k, int add, int sub, int mul, int div) {
  52. if (k == 0) {
  53. max = Math.max(cur, max);
  54. min = Math.min(cur, min);
  55. } else if (sub != 0) {
  56. ad(a, cur - a[j], j + 1, k - 1, add, sub - 1, mul, div);
  57. su(a, cur - a[j], j + 1, k - 1, add, sub - 1, mul, div);
  58. mu(a, cur - a[j], j + 1, k - 1, add, sub - 1, mul, div);
  59. di(a, cur - a[j], j + 1, k - 1, add, sub - 1, mul, div);
  60. }
  61. }
  62.  
  63. private static void ad(int[] a, int cur, int j, int k, int add, int sub, int mul, int div) {
  64. if (k == 0) {
  65. max = Math.max(cur, max);
  66. min = Math.min(cur, min);
  67. } else if (add != 0) {
  68. ad(a, cur + a[j], j + 1, k - 1, add - 1, sub, mul, div);
  69. su(a, cur + a[j], j + 1, k - 1, add - 1, sub, mul, div);
  70. mu(a, cur + a[j], j + 1, k - 1, add - 1, sub, mul, div);
  71. di(a, cur + a[j], j + 1, k - 1, add - 1, sub, mul, div);
  72. }
  73. }
  74. }
Add Comment
Please, Sign In to add comment