diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4f858a0
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+/target/classes/com/epam/intro/SubTask10.class
+/target/classes/com/epam/intro/SubTask1.class
+/target/classes/com/epam/intro/SubTask11.class
+/target/classes/com/epam/intro/SubTask12.class
+/target/classes/com/epam/intro/SubTask13.class
+/target
+/.idea
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..09d711e
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,16 @@
+
+
+ 4.0.0
+
+ org.example
+ 2_Algorithmization
+ 1.0-SNAPSHOT
+
+
+ 8
+ 8
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/epam/intro/SubTask1.java b/src/main/java/com/epam/intro/SubTask1.java
new file mode 100644
index 0000000..431ef59
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask1.java
@@ -0,0 +1,32 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask1 {
+
+ public static void main(String[] args) {
+ int n = readVariable("number of elements");
+ int k = readVariable("common divider");
+ int sum = 0;
+ int[] a = new int[n];
+ for (int i = 0; i a[i][y - 1]) {
+ columnsToShow[i] = true;
+ }
+ }
+ for (int j = 0; j < y; j++) {
+ for (int i = 1; i < x; i += 2) {
+ if(columnsToShow[i]){
+ System.out.print(a[i][j] + " ");
+ }
+
+ }
+ System.out.println();
+ }
+ }
+
+ private static int[][] readArray(int x, int y) {
+ int[][] a = new int[x][y];
+ for (int j = 0; j < y; j++) {
+ String row = readStringVariable(" row : " + j);
+ String[] elements = row.split(TEMPLATE);
+ if(elements.length< x){
+ throw new RuntimeException("Incorrect length of row");
+ }
+ int i=0;
+ for (String str:elements){
+ a[i++][j] = Integer.parseInt(str);
+ }
+ }
+ return a;
+ }
+
+ private static String readStringVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextLine();
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask12.java b/src/main/java/com/epam/intro/SubTask12.java
new file mode 100644
index 0000000..ebc7eb0
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask12.java
@@ -0,0 +1,29 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask12 {
+ public static void main(String[] args) {
+ int n = readVariable("count of columns and rows: ");
+ int[][] a = new int[n][n];
+ for (int j = 0; j < n; j++) {
+ for (int i = 0; i < n; i++) {
+ a[i][j] = readVariable("a[" + i + "," + j + "]");
+ }
+ }
+ for (int i = 0; i < n; i++) {
+ System.out.print(a[i][i] + " ");
+ }
+ for (int i = 0; i < n; i++) {
+ if (a[n-i-1][i]!=a[i][i])
+ System.out.print(a[n - i-1][i] + " ");
+ }
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask13.java b/src/main/java/com/epam/intro/SubTask13.java
new file mode 100644
index 0000000..6e75e7e
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask13.java
@@ -0,0 +1,33 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask13 {
+ public static void main(String[] args) {
+ int y = readVariable("count of rows: ");
+ int x = readVariable("count of columns: ");
+ int[][] a = new int[x][y];
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ a[i][j] = readVariable("a[" + i + "," + j + "]");
+ }
+ }
+ int k = readVariable("number of row: ");
+ int p = readVariable("number of column: ");
+ for (int i = 0; i < x; i++) {
+ System.out.print(a[i][k]);
+ }
+ System.out.println();
+ System.out.println();
+ for (int j = 0; j < y; j++) {
+ System.out.println(a[p][j]);
+ }
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask14.java b/src/main/java/com/epam/intro/SubTask14.java
new file mode 100644
index 0000000..88581e8
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask14.java
@@ -0,0 +1,31 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask14 {
+ public static void main(String[] args) {
+ int n = readVariable("count of columns and rows: ");
+ int[][] a = new int[n][n];
+ for (int j = 0; j < n; j++) {
+ for (int i = 0; i < n; i++) {
+ if (j % 2 != 0) {
+ a[i][j] = n - i;
+ } else {
+ a[i][j] = i + 1;
+ }
+ System.out.print(a[i][j] + " ");
+ }
+ System.out.println();
+ }
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ int result = scanner.nextInt();
+ if (result % 2 > 0) {
+ throw new RuntimeException("It must be even number");
+ }
+ return result;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/epam/intro/SubTask15.java b/src/main/java/com/epam/intro/SubTask15.java
new file mode 100644
index 0000000..e2da5b5
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask15.java
@@ -0,0 +1,32 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask15 {
+ public static void main(String[] args) {
+ int n = readVariable("count of columns and rows: ");
+ int[][] a = new int[n][n];
+ for (int i = 0; i < n; i++) {
+ for (int j = 0; j < n; j++) {
+ if (i+j>=n) {
+ a[i][j] = 0;
+ } else {
+ a[i][j] = i + 1;
+ }
+ System.out.print(a[i][j] + " ");
+ }
+ System.out.println();
+ }
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ int result = scanner.nextInt();
+ if (result % 2 > 0) {
+ throw new RuntimeException("It must be even number");
+ }
+ return result;
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask16.java b/src/main/java/com/epam/intro/SubTask16.java
new file mode 100644
index 0000000..7b2f0be
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask16.java
@@ -0,0 +1,32 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask16 {
+ public static void main(String[] args) {
+ int n = readVariable("count of columns and rows: ");
+ int[][] a = new int[n][n];
+ for (int j = 0; j < n; j++) {
+ for (int i = 0; i < n; i++) {
+ if (((i + j > n - 1) && i > j) || (i + j < n - 1 && i < j)) {
+ a[i][j] = 0;
+ } else {
+ a[i][j] = 1;
+ }
+ System.out.print(a[i][j] + " ");
+ }
+ System.out.println();
+ }
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ int result = scanner.nextInt();
+ if (result % 2 > 0) {
+ throw new RuntimeException("It must be even number");
+ }
+ return result;
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask17.java b/src/main/java/com/epam/intro/SubTask17.java
new file mode 100644
index 0000000..763c447
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask17.java
@@ -0,0 +1,41 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+import static java.lang.Math.pow;
+
+public class SubTask17 {
+ public static void main(String[] args) {
+ int n = readVariable("count of columns and rows: ");
+ int countPositive = 0;
+ double[][] a = new double[n][n];
+ for (int j = 0; j < n; j++) {
+ for (int i = 0; i < n; i++) {
+ a[i][j] = Math.sin((pow(i, 2) - pow(j, 2)) / n);
+ System.out.print(a[i][j] + " ");
+ }
+ System.out.println();
+ }
+
+ for (int j = 0; j < n; j++) {
+ for (int i = 0; i < n; i++) {
+ if (a[i][j] > 0) {
+ countPositive = countPositive + 1;
+ }
+ }
+
+ }
+ System.out.println("Count of positive elements: " + countPositive);
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ int result = scanner.nextInt();
+ if (result % 2 > 0) {
+ throw new RuntimeException("It must be even number");
+ }
+ return result;
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask18.java b/src/main/java/com/epam/intro/SubTask18.java
new file mode 100644
index 0000000..f187ea9
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask18.java
@@ -0,0 +1,37 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask18 {
+ public static void main(String[] args) {
+ int y = readVariable("count of rows: ");
+ int x = readVariable("count of columns: ");
+ int[][] a = new int[x][y];
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ a[i][j] = readVariable("a[" + i + "," + j + "]");
+ }
+ }
+ int k = readVariable("number of first column: ");
+ int p = readVariable("number of second column: ");
+ int tmp = 0;
+ for (int j = 0; j < y; j++) {
+ tmp = a[k][j];
+ a[k][j] = a[p][j];
+ a[p][j] = tmp;
+ }
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i ++) {
+ System.out.print(a[i][j] + " ");
+ }
+ System.out.println();
+ }
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask19.java b/src/main/java/com/epam/intro/SubTask19.java
new file mode 100644
index 0000000..ddef1cd
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask19.java
@@ -0,0 +1,38 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask19 {
+ public static void main(String[] args) {
+ int y = readVariable("count of rows: ");
+ int x = readVariable("count of columns: ");
+ int[][] a = new int[x][y];
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ a[i][j] = readVariable("a[" + i + "," + j + "]");
+ }
+ }
+ int[] sum = new int [x];
+ for (int i = 0; i < x; i++) {
+ for (int j = 0; j < y; j++) {
+ sum[i] = sum[i] + a[i][j];
+ }
+ }
+ int k = 1;
+ int max = sum[1];
+ for (int i = 0; i < x; i++) {
+ if (sum[i] > max) {
+ max = sum[i];
+ k = i;
+ }
+ }
+ System.out.print("Maximum sum is: " + k);
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask2.java b/src/main/java/com/epam/intro/SubTask2.java
new file mode 100644
index 0000000..1f0e650
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask2.java
@@ -0,0 +1,37 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask2 {
+ public static void main(String[] args) {
+ int n = readVariable("number of elements");
+ double z = readVariable("number z");
+ int count = 0;
+ double[] a = new double[n];
+ for (int i = 0; i z) {
+ a[i] = z;
+ count++;
+ }
+ }
+ System.out.println("The result is: " + count);
+
+ }
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ int result = scanner.nextInt();
+ if (result <0 ){
+ throw new RuntimeException("It must be more than 0");
+ }
+ return result;
+ }
+ public static double readDoubleVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextDouble();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask20.java b/src/main/java/com/epam/intro/SubTask20.java
new file mode 100644
index 0000000..9fbdd5b
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask20.java
@@ -0,0 +1,25 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask20 {
+ public static void main(String[] args) {
+ int n = readVariable("count of columns and rows: ");
+ int[][] a = new int[n][n];
+ for (int j = 0; j < n; j++) {
+ for (int i = 0; i < n; i++) {
+ a[i][j] = readVariable("a[" + i + "," + j + "]");
+ }
+ }
+ for (int i = 0; i < n; i++) {
+ if (a[i][i]>0)
+ System.out.print(a[i][i] + " ");
+ }
+ }
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask21.java b/src/main/java/com/epam/intro/SubTask21.java
new file mode 100644
index 0000000..416433f
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask21.java
@@ -0,0 +1,41 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask21 {
+ public static void main(String[] args) {
+ double[][] a = new double[10][20];
+ int[][] b = new int[10][20];
+ for (int j = 0; j < 20; j++) {
+ for (int i = 0; i < 10; i++) {
+ a[i][j] = Math.random() * 15;
+ }
+ }
+
+ for (int j = 0; j < 20; j++) {
+ for (int i = 0; i < 10; i++) {
+ b[i][j] = (int) a[i][j];
+ }
+ }
+
+ for (int j = 0; j < 20; j++) {
+ for (int i = 0; i < 10; i++) {
+ System.out.print(b[i][j] + " ");
+ }
+ System.out.println();
+ }
+ System.out.println();
+ for (int j = 0; j < 20; j++) {
+ int count = 0;
+ for (int i = 0; i < 10; i++) {
+ if (b[i][j] == 5) {
+ count = count + 1;
+ }
+ }
+ if (count >= 3) {
+ System.out.print(j + " ");
+ }
+ }
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask22.java b/src/main/java/com/epam/intro/SubTask22.java
new file mode 100644
index 0000000..9f72bf4
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask22.java
@@ -0,0 +1,46 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask22 {
+ public static void main(String[] args) {
+ int y = readVariable("count of rows: ");
+ int x = readVariable("count of columns: ");
+ int[][] a = new int[x][y];
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ a[i][j] = readVariable("a[" + i + "," + j + "]");
+ }
+ }
+ for (int j = 0; j < y; j++) {
+ int countOfReplacement = 0;
+ do {
+ countOfReplacement = 0;
+ for (int i = 0; i < x - 1; i++) {
+ if (a[i][j] > a[i + 1][j]) {
+ int tmp = a[i][j];
+ a[i][j] = a[i + 1][j];
+ a[i + 1][j] = tmp;
+ countOfReplacement++;
+ }
+ }
+
+ }
+ while (countOfReplacement > 0);
+ }
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ System.out.print(a[i][j] + " ");
+ }
+ System.out.println();
+ }
+
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask23.java b/src/main/java/com/epam/intro/SubTask23.java
new file mode 100644
index 0000000..ac977a7
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask23.java
@@ -0,0 +1,47 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask23 {
+ public static void main(String[] args) {
+ int y = readVariable("count of rows: ");
+ int x = readVariable("count of columns: ");
+ int[][] a = new int[x][y];
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ a[i][j] = readVariable("a[" + i + "," + j + "]");
+ }
+ }
+ for (int j = 0; j < y; j++) {
+ int countOfReplacement = 0;
+ do {
+ countOfReplacement = 0;
+ for (int i = 0; i < x - 1; i++) {
+ if (a[i][j] < a[i + 1][j]) {
+ int tmp = a[i][j];
+ a[i][j] = a[i + 1][j];
+ a[i + 1][j] = tmp;
+ countOfReplacement++;
+ }
+ }
+
+ }
+ while (countOfReplacement > 0);
+ }
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ System.out.print(a[i][j] + " ");
+ }
+ System.out.println();
+ }
+
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask24.java b/src/main/java/com/epam/intro/SubTask24.java
new file mode 100644
index 0000000..38080e7
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask24.java
@@ -0,0 +1,52 @@
+package com.epam.intro;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+import java.util.Scanner;
+
+public class SubTask24 {
+ public static void main(String[] args) {
+ int y = readVariable("count of rows: ");
+ int x = readVariable("count of columns: ");
+ if (x < y) {
+ throw new RuntimeException("Number of rows must be more or equal than number of columns");
+ }
+ int[][] a = new int[x][y];
+ Random random = new Random();
+
+
+ for (int i = 0; i < x; i++) {
+ List ids = new ArrayList<>();
+ for (int j = 0; j < y; j++) {
+ ids.add((long) j);
+ }
+ for (int k = 0; k < y - i; k++) {
+ if (ids.size() > 0) {
+ int id = random.nextInt(ids.size());
+ ids.remove(id);
+ } else {
+ break;
+ }
+ }
+ for (Long strNumber : ids) {
+ a[i][strNumber.intValue()] = 1;
+ }
+ }
+
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ System.out.print(a[i][j] + " ");
+ }
+ System.out.println();
+ }
+
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask25.java b/src/main/java/com/epam/intro/SubTask25.java
new file mode 100644
index 0000000..70195d6
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask25.java
@@ -0,0 +1,42 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask25 {
+ public static void main(String[] args) {
+ int y = readVariable("count of rows: ");
+ int x = readVariable("count of columns: ");
+ int[][] a = new int[x][y];
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ a[i][j] = readVariable("a[" + i + "," + j + "]");
+ }
+ }
+ int max = a[1][1];
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ if (a[i][j] > max)
+ max = a[i][j];
+ }
+ }
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ if (a[i][j] % 2 != 0)
+ a[i][j] = max;
+ }
+ }
+ for (int j = 0; j < y; j++) {
+ for (int i = 0; i < x; i++) {
+ System.out.print(a[i][j] + " ");
+ }
+ System.out.println();
+ }
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask26.java b/src/main/java/com/epam/intro/SubTask26.java
new file mode 100644
index 0000000..17f0993
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask26.java
@@ -0,0 +1,151 @@
+package com.epam.intro;
+
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+import java.util.stream.LongStream;
+import java.util.stream.Stream;
+
+public class SubTask26 {
+ private static final Integer AMOUNT = 3;
+ private static final Map METRICS = new ConcurrentHashMap<>();
+ private static final String NEXT_REPLACE_DETECT = "NEXT REPLACE DETECT";
+ private static final String FILL_MATRIX = "FILL MATRIX";
+ private static final String CHECK_MATRIX = "CHECK MATRIX";
+ private static final String REPLACE = "REPLACE";
+ private static final String TOTALLY = "TOTALLY";
+ private static final String MAX_DETECTION = "MAX DETECTION";
+ private static final String MIN_FROM_MAX = "MIN FROM MAX";
+ private static final String MERGE = "MERGE";
+
+ public static void main(String[] args) {
+ List originalList = LongStream.range(1, (long) AMOUNT * AMOUNT + 1).boxed().collect(Collectors.toList());
+ long[][] matrix = new long[AMOUNT][AMOUNT];
+ METRICS.put(NEXT_REPLACE_DETECT, 0L);
+ METRICS.put(FILL_MATRIX, 0L);
+ METRICS.put(CHECK_MATRIX, 0L);
+ METRICS.put(REPLACE, 0L);
+ METRICS.put(MAX_DETECTION, 0L);
+ METRICS.put(MIN_FROM_MAX, 0L);
+ METRICS.put(MERGE, 0L);
+ fillMatrix(originalList, matrix);
+ long maxNumberOfIterations = LongStream.range(1, (long) AMOUNT * AMOUNT + 1).reduce(1, (x, y) -> x * y);
+ System.out.println("Totally " + maxNumberOfIterations);
+ System.out.println();
+ printMatrix(matrix);
+ boolean detected = false;
+ long count = 1;
+ long startTime = System.currentTimeMillis();
+ while (getNextReplacementIndex(originalList) >= 0 && !detected) {
+ originalList = replaceByPosition(originalList, getNextReplacementIndex(originalList));
+ fillMatrix(originalList, matrix);
+ detected = checkMatrix(matrix);
+ count++;
+ if (System.currentTimeMillis() - startTime > 1000 * 60 * 2) {
+ break;
+ }
+ }
+ if (detected) {
+ System.out.println();
+ printMatrix(matrix);
+ }
+ System.out.println("Count: " + count);
+ METRICS.put(TOTALLY, System.currentTimeMillis() - startTime);
+ METRICS.forEach((key, value) -> System.out.println(key + " : " + value));
+ }
+
+ private static void printMatrix(long[][] matrix) {
+ System.out.println(Arrays.stream(matrix)
+ .map(it -> Arrays.stream(it)
+ .boxed()
+ .map(it0 -> String.format("%02d ", it0))
+ .collect(Collectors.joining(" "))).collect(Collectors.joining("\n")));
+ System.out.println("-----------");
+ }
+
+ private static void fillMatrix(List originalList, long[][] matrix) {
+ long startTime = System.currentTimeMillis();
+ for (int i = 0; i < AMOUNT; i++) {
+ for (int j = 0; j < AMOUNT; j++) {
+ matrix[i][j] = originalList.get(i * AMOUNT + j);
+ }
+ }
+ fillMetrics(startTime, FILL_MATRIX);
+ }
+
+ private static void fillMetrics(long startTime, String metric) {
+ METRICS.put(metric, METRICS.get(metric) + System.currentTimeMillis() - startTime);
+ }
+
+ private static boolean checkMatrix(long[][] matrix) {
+ long startTime = System.currentTimeMillis();
+ long expected = AMOUNT * ((long) AMOUNT * AMOUNT + 1) / 2;
+ long sumColumn;
+ long sumRow;
+ boolean canBeCalculated = IntStream.range(0, AMOUNT).boxed().map(it -> matrix[it][it]).mapToLong(it -> it).sum() == expected;
+ if (canBeCalculated) {
+ canBeCalculated = IntStream.range(0, AMOUNT).boxed().map(it -> matrix[it][AMOUNT - it - 1]).mapToLong(it -> it).sum() == expected;
+ for (int i = 0; i < AMOUNT && canBeCalculated; i++) {
+ sumColumn = 0;
+ sumRow = 0;
+ for (int j = 0; j < AMOUNT; j++) {
+ sumColumn += matrix[i][j];
+ sumRow += matrix[j][i];
+ }
+ if (sumColumn != expected || sumRow != expected) {
+ canBeCalculated = false;
+ }
+ }
+ }
+ fillMetrics(startTime, FILL_MATRIX);
+ return canBeCalculated;
+ }
+
+ private static int getNextReplacementIndex(List originalList) {
+ long startTime = System.currentTimeMillis();
+ int result = -1;
+ for (int i = originalList.size() - 1; i > 0; i--) {
+ if (originalList.get(i) > originalList.get(i - 1)) {
+ result = i - 1;
+ break;
+ }
+ }
+
+ fillMetrics(startTime, NEXT_REPLACE_DETECT);
+ return result;
+ }
+
+ private static List replaceByPosition(List originalList, Integer position) {
+ long startTime = System.currentTimeMillis();
+
+ long min = Long.MAX_VALUE;
+ Long elementForCheck = originalList.get(position);
+ for (int i = position + 1; i < originalList.size(); i++) {
+ Long element = originalList.get(i);
+ if (min > element && element > elementForCheck) {
+ min = element;
+ }
+ }
+
+ fillMetrics(startTime, MIN_FROM_MAX);
+ long startTimeMerge = System.currentTimeMillis();
+ List result = new ArrayList<>(originalList.size());
+ originalList.remove(min);
+ List subList = originalList.subList(position, originalList.size()).stream().sorted().collect(Collectors.toList());
+ for (int i = 0; i < originalList.size(); i++) {
+ if (i < position) {
+ result.add(originalList.get(i));
+ } else if (i == position) {
+ result.add(min);
+ }
+ }
+ result.addAll(subList);
+
+ fillMetrics(startTimeMerge, MERGE);
+ fillMetrics(startTime, REPLACE);
+
+ return result;
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask27.java b/src/main/java/com/epam/intro/SubTask27.java
new file mode 100644
index 0000000..ee90269
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask27.java
@@ -0,0 +1,39 @@
+package com.epam.intro;
+
+import java.util.Arrays;
+import java.util.Scanner;
+
+public class SubTask27 {
+ public static void main(String[] args) {
+ int lengthFirstArray = readVariable("length of the first array: ");
+ int[] a = new int[lengthFirstArray];
+ for (int i = 0; i < lengthFirstArray; i++) {
+ a[i] = readVariable("a[" + i + "]");
+
+ }
+ int lengthSecondArray = readVariable("length of the second array: ");
+ int[] b = new int[lengthSecondArray];
+ for (int j = 0; j < lengthSecondArray; j++) {
+ b[j] = readVariable("b[" + j + "]");
+
+ }
+ int k = readVariable("k: ");
+ a = Arrays.copyOf(a, lengthFirstArray + lengthSecondArray);
+ for (int i = lengthFirstArray - 1; i > k; i--) {
+ a[a.length - lengthFirstArray + i] = a[i];
+ }
+ for (int i = k + 1; i < k + 1 + lengthSecondArray; i++) {
+ a[i] = b[i - k - 1];
+ }
+ for (int i = 0; i < a.length; i++) {
+ System.out.print(a[i] + " ");
+ }
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask28.java b/src/main/java/com/epam/intro/SubTask28.java
new file mode 100644
index 0000000..a5aaddf
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask28.java
@@ -0,0 +1,49 @@
+package com.epam.intro;
+
+import java.util.Arrays;
+import java.util.Scanner;
+
+public class SubTask28 {
+ public static void main(String[] args) {
+ int lengthFirstArray = readVariable("length of the first array: ");
+ int[] a = new int[lengthFirstArray];
+ for (int i = 0; i < lengthFirstArray; i++) {
+ a[i] = readVariable("a[" + i + "]");
+
+ }
+ int lengthSecondArray = readVariable("length of the second array: ");
+ int[] b = new int[lengthSecondArray];
+ for (int j = 0; j < lengthSecondArray; j++) {
+ b[j] = readVariable("b[" + j + "]");
+
+ }
+ a = Arrays.copyOf(a, lengthFirstArray + lengthSecondArray);
+ for (int i = lengthFirstArray; i < a.length; i++) {
+ a[i] = b[i - lengthFirstArray];
+ }
+ int countOfReplacement = 0;
+ do {
+ countOfReplacement = 0;
+ for (int i = 0; i < a.length-1; i++) {
+ if (a[i] > a[i + 1]) {
+ int tmp = a[i];
+ a[i] = a[i + 1];
+ a[i + 1] = tmp;
+ countOfReplacement++;
+ }
+ }
+
+ }
+ while (countOfReplacement > 0);
+ for (int i = 0; i < a.length; i++) {
+ System.out.print(a[i] + " ");
+ }
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask29.java b/src/main/java/com/epam/intro/SubTask29.java
new file mode 100644
index 0000000..ef778f1
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask29.java
@@ -0,0 +1,37 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask29 {
+ public static void main(String[] args) {
+ int lengthArray = readVariable("length of the first array: ");
+ int[] a = new int[lengthArray];
+ for (int i = 0; i < lengthArray; i++) {
+ a[i] = readVariable("a[" + i + "]");
+
+ }
+ for (int j = 0; j < lengthArray; j++) {
+
+ int max = a[j];
+ int position = j;
+ for (int i = j; i < lengthArray; i++) {
+ if (a[i] > max) {
+ max = a[i];
+ position = i;
+ }
+ }
+ a[position] = a[j];
+ a[j] = max;
+ }
+ for (int i = 0; i < a.length; i++) {
+ System.out.print(a[i] + " ");
+ }
+
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/epam/intro/SubTask3.java b/src/main/java/com/epam/intro/SubTask3.java
new file mode 100644
index 0000000..458dd87
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask3.java
@@ -0,0 +1,56 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask3 {
+ static class Statistics {
+ int lessZero = 0;
+ int zero = 0;
+ int moreZero = 0;
+
+ @Override
+ public String toString() {
+ return "Statistics{" +
+ "lessZero=" + lessZero +
+ ", zero=" + zero +
+ ", moreZero=" + moreZero +
+ '}';
+ }
+ }
+
+ public static void main(String[] args) {
+ int n = readVariable("number of elements");
+ Statistics statistics = new Statistics();
+ double[] a = new double[n];
+ for (int i = 0; i < n; i++) {
+ a[i] = readDoubleVariable("a[" + i + "]");
+ }
+ for (int i = 0; i < n; i++) {
+ if (a[i] > 0) {
+ statistics.moreZero++;
+ }else if (a[i]<0){
+ statistics.lessZero++;
+ }else {
+ statistics.zero++;
+ }
+ }
+ System.out.println("The result is: " + statistics);
+
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ int result = scanner.nextInt();
+ if (result < 0) {
+ throw new RuntimeException("It must be more than 0");
+ }
+ return result;
+ }
+
+ public static double readDoubleVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextDouble();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask30.java b/src/main/java/com/epam/intro/SubTask30.java
new file mode 100644
index 0000000..c096fcf
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask30.java
@@ -0,0 +1,39 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask30 {
+ public static void main(String[] args) {
+ int lengthArray = readVariable("length of the first array: ");
+ int[] a = new int[lengthArray];
+ for (int i = 0; i < lengthArray; i++) {
+ a[i] = readVariable("a[" + i + "]");
+
+ }
+ int countOfReplacement = 0;
+ do {
+ countOfReplacement = 0;
+ for (int i = 0; i < lengthArray-1; i++) {
+ if (a[i] > a[i + 1]) {
+ int tmp = a[i];
+ a[i] = a[i + 1];
+ a[i + 1] = tmp;
+ countOfReplacement++;
+ }
+ }
+
+ }
+ while (countOfReplacement > 0);
+
+ for (int i = 0; i < a.length; i++) {
+ System.out.print(a[i] + " ");
+ }
+
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/epam/intro/SubTask31.java b/src/main/java/com/epam/intro/SubTask31.java
new file mode 100644
index 0000000..1bdf03a
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask31.java
@@ -0,0 +1,65 @@
+package com.epam.intro;
+
+import java.util.*;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+
+public class SubTask31 {
+ public static void main(String[] args) {
+ int lengthArray = readVariable("length of the first array: ");
+ int[] a = new int[lengthArray];
+ for (int i = 0; i < lengthArray; i++) {
+ a[i] = readVariable("a[" + i + "]");
+
+ }
+ List result = new ArrayList<>();
+ for (int i = 0; i < lengthArray; i++) {
+ boolean dectected = false;
+ int middle = result.size() / 2;
+ int position = middle;
+ int leftBound = 0;
+ int rightBound = result.size();
+ while (!dectected) {
+ if (rightBound - leftBound == 0) {
+ position = leftBound;
+ dectected = true;
+ } else if (rightBound - leftBound == 1) {
+ if (a[i] > result.get(middle)) {
+ position = rightBound;
+ dectected = true;
+ } else {
+ position = leftBound;
+ dectected = true;
+ }
+ } else {
+ int left = result.get(middle - 1);
+ int right = result.get(middle);
+ if (a[i] < left) {
+ rightBound = middle;
+ middle = leftBound + (rightBound - leftBound) / 2;
+ } else if (a[i] == left || a[i] <= right) {
+ position = middle;
+ dectected = true;
+ } else {
+ leftBound = middle;
+ middle = leftBound + (rightBound - leftBound) / 2;
+ }
+
+ }
+ }
+ result.add(position, a[i]);
+ }
+ for (int j : a) {
+ System.out.print(j + " ");
+ }
+ System.out.println();
+ System.out.println(result.stream().map(String::valueOf).collect(Collectors.joining(" ")));
+
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask32.java b/src/main/java/com/epam/intro/SubTask32.java
new file mode 100644
index 0000000..6830384
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask32.java
@@ -0,0 +1,49 @@
+package com.epam.intro;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Scanner;
+import java.util.stream.Collectors;
+
+public class SubTask32 {
+ public static void main(String[] args) {
+ int lengthArray = readVariable("length of the first array: ");
+ int[] a = new int[lengthArray];
+ for (int i = 0; i < lengthArray; i++) {
+ a[i] = readVariable("a[" + i + "]");
+
+ }
+ boolean detected = false;
+ int position = 0;
+ printArray(a);
+ while (!detected){
+ position = Math.max(position, 0);
+ if(position == lengthArray-1){
+ detected = true;
+ } else {
+ if(a[position]<=a[position+1]){
+ position++;
+ }else {
+ int tmp = a[position];
+ a[position] = a[position+1];
+ a[position+1] =tmp;
+ position--;
+ }
+ }
+ }
+
+ printArray(a);
+ }
+
+ private static void printArray(int[] a){
+ System.out.println(Arrays.stream(a).boxed().map(it -> Integer.toString(it)).collect(Collectors.joining(" ")));
+ System.out.println("---------------------");
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask33.java b/src/main/java/com/epam/intro/SubTask33.java
new file mode 100644
index 0000000..63f0b7d
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask33.java
@@ -0,0 +1,176 @@
+package com.epam.intro;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Scanner;
+import java.util.*;
+
+public class SubTask33 {
+ static class Duplicate {
+ Integer value;
+ Integer beginPosition;
+ Integer endPosition;
+ Integer valueBefore;
+ Integer valueAfter;
+ Boolean isOk;
+
+ public Duplicate(Integer value, Integer beginPosition, Integer endPosition, Integer valueBefore, Integer valueAfter) {
+ this.value = value;
+ this.beginPosition = beginPosition;
+ this.endPosition = endPosition;
+ this.valueBefore = valueBefore;
+ this.valueAfter = valueAfter;
+ isOk = false;
+ }
+
+ public String toString() {
+ return value + " [" + beginPosition + "-" + endPosition + "] " + ">" + valueBefore + " - " + valueAfter + "<";
+
+ }
+
+ }
+
+ public static void main(String[] args) {
+// int n = readVariable("Length of the first array: ");
+// int[] a = new int[n];
+// for (int i = 0; i < n; i++) {
+// a[i] = readVariable("a[" + i + "]");
+// }
+//
+// int m = readVariable("Length of the second array: ");
+// int[] b = new int[m];
+// for (int i = 0; i < m; i++) {
+// b[i] = readVariable("a[" + i + "]");
+// }
+ int[] a = new int[]{0, 1, 5, 15, 15, 15, 25};
+ int[] b = new int[]{3, 4, 4, 8, 10, 11, 11, 17, 28};
+ List reducedB = new ArrayList<>();
+ int previousValue = b[0];
+ reducedB.add(previousValue);
+ for (int i = 1; i < b.length; i++) {
+ if (b[i] != previousValue) {
+ reducedB.add(b[i]);
+ previousValue = b[i];
+ }
+ }
+
+
+ previousValue = a[0];
+
+ Map duplicates = new HashMap<>();
+ for (int i = 1; i < a.length; i++) {
+ if (a[i] == previousValue) {
+ duplicates.putIfAbsent(a[i], new Duplicate(a[i], i - 1, i, i - 2 < 0 ? 0 : a[i - 2], i + 1 == a.length ? a[i] + 1 : a[i + 1]));
+ duplicates.get(a[i]).endPosition = i;
+ duplicates.get(a[i]).valueAfter = i + 1 == a.length ? a[i] + 1 : a[i + 1];
+ } else {
+ previousValue = a[i];
+ }
+ }
+
+
+ boolean statusFailed = false;
+ boolean allIsOk = false;
+ while (!statusFailed && !allIsOk) {
+ Map recalculatedDuplicates = new HashMap<>();
+
+ int countOfRecalculation = 0;
+ do {
+ countOfRecalculation = 0;
+ Duplicate previousDuplicate = duplicates.values().iterator().next();
+ boolean added = false;
+ for (Map.Entry entry : duplicates.entrySet()) {
+ if (entry.getValue().equals(previousDuplicate)) {
+
+ } else if ((entry.getValue().beginPosition <= previousDuplicate.endPosition && entry.getValue().beginPosition >= previousDuplicate.beginPosition)
+ || (entry.getValue().endPosition <= previousDuplicate.endPosition && entry.getValue().endPosition >= previousDuplicate.beginPosition)) {
+ Duplicate duplicate = new Duplicate(previousDuplicate.value, previousDuplicate.beginPosition, entry.getValue().beginPosition, previousDuplicate.valueBefore, entry.getValue().valueAfter);
+ recalculatedDuplicates.put(duplicate.value, duplicate);
+ previousDuplicate = duplicate;
+ countOfRecalculation++;
+ added = true;
+ } else {
+ recalculatedDuplicates.put(previousDuplicate.value, previousDuplicate);
+ added = true;
+ }
+ if (!added) {
+ recalculatedDuplicates.put(previousDuplicate.value, previousDuplicate);
+ }
+ }
+ duplicates = recalculatedDuplicates;
+ recalculatedDuplicates = new HashMap<>();
+ } while (countOfRecalculation > 0);
+ statusFailed = false;
+ for (Map.Entry entry : duplicates.entrySet()) {
+ if (!statusFailed) {
+ while (!entry.getValue().isOk && !statusFailed) {
+ int sum = 1;
+ for (int i = 0; i < reducedB.size(); i++) {
+
+ if (entry.getValue().valueBefore < reducedB.get(i) && entry.getValue().valueAfter > reducedB.get(i)) {
+ sum++;
+ }
+ }
+ if (sum >= entry.getValue().endPosition - entry.getValue().beginPosition + 1) {
+ entry.getValue().isOk = true;
+ } else {
+ if (entry.getValue().endPosition + 1 == a.length && entry.getValue().beginPosition - 1 < 0) {
+ statusFailed = true;
+ break;
+ } else {
+ entry.getValue().beginPosition = entry.getValue().beginPosition - 1 < 0 ? 0 : entry.getValue().beginPosition - 1;
+ entry.getValue().endPosition = entry.getValue().endPosition + 1 == a.length ? entry.getValue().endPosition : entry.getValue().endPosition + 1;
+ entry.getValue().valueBefore = entry.getValue().beginPosition > 0 ? a[entry.getValue().beginPosition - 1] : 0;
+ entry.getValue().valueAfter = entry.getValue().endPosition + 1 == a.length ? a[a.length - 1] + 1 : a[entry.getValue().endPosition + 1];
+ }
+ }
+ }
+ } else {
+ break;
+ }
+ }
+ allIsOk = true;
+ for (Map.Entry entry : duplicates.entrySet()) {
+ if (!entry.getValue().isOk) {
+ allIsOk = false;
+ break;
+ }
+ }
+ }
+
+
+ for (
+ int i = 0;
+ i < a.length; i++) {
+ System.out.print(a[i] + " ");
+ }
+ System.out.println();
+ for (
+ int i = 0;
+ i < b.length; i++) {
+ System.out.print(b[i] + " ");
+ }
+ System.out.println();
+ for (
+ int i = 0; i < reducedB.size(); i++) {
+ System.out.print(reducedB.get(i) + " ");
+ }
+
+ System.out.println();
+
+ for (
+ Map.Entry entries : duplicates.entrySet()) {
+ System.out.println(entries.getValue() + " ");
+
+ }
+
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask34.java b/src/main/java/com/epam/intro/SubTask34.java
new file mode 100644
index 0000000..e1b68bb
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask34.java
@@ -0,0 +1,51 @@
+package com.epam.intro;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Scanner;
+
+public class SubTask34 {
+ static class CustomNumber {
+ long numerator;
+ long denominator;
+ Long realNumerator;
+
+ public CustomNumber(long numerator, long denominator) {
+ this.numerator = numerator;
+ this.denominator = denominator;
+ }
+ }
+
+ public static void main(String[] args) {
+ long n = readVariable("n");
+ List customNumberList = new ArrayList<>();
+ for (int i = 0; i < n; i++) {
+ long numerator = readVariable("numerator");
+ long denominator = readVariable("denominator");
+ customNumberList.add(new CustomNumber(numerator, denominator));
+ }
+ long denominatorMax = 1;
+ for (int i = 0; i < n; i++) {
+ denominatorMax = denominatorMax * customNumberList.get(i).denominator;
+ }
+ for (int i = 0; i < n; i++) {
+ customNumberList.get(i).realNumerator = customNumberList.get(i).numerator *
+ (denominatorMax / customNumberList.get(i).denominator);
+ }
+ List toSort = new ArrayList<>(customNumberList);
+ toSort.sort((Comparator.comparing(o -> o.realNumerator)));
+ for (CustomNumber it : toSort) {
+ System.out.print(it.numerator + "/" + it.denominator + " ");
+ }
+
+
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+
+}
diff --git a/src/main/java/com/epam/intro/SubTask35.java b/src/main/java/com/epam/intro/SubTask35.java
new file mode 100644
index 0000000..ad57fda
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask35.java
@@ -0,0 +1,36 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask35 {
+ public static void main(String[] args) {
+
+ int a = readVariable("First number: ");
+ int b = readVariable("Second number: ");
+ int greatestCommonDivisor = getGreatestCommonDivisor(a, b);
+ int leastCommonMultiple = getLeastCommonMultiple(a, b, greatestCommonDivisor);
+ System.out.println("Greatest Common Divisor: " + greatestCommonDivisor);
+ System.out.println("Least Common Multiple: " + leastCommonMultiple);
+
+ }
+
+ private static int getLeastCommonMultiple(int a, int b, int greatestCommonDivisor) {
+ return a * b / greatestCommonDivisor;
+ }
+
+ private static int getGreatestCommonDivisor(int a, int b) {
+ int greatestCommonDivisor = 1;
+ for (int i = 2; i <= (a > b ? b : a); i++) {
+ if (a % i == 0 && b % i == 0) {
+ greatestCommonDivisor = i;
+ }
+ }
+ return greatestCommonDivisor;
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask36.java b/src/main/java/com/epam/intro/SubTask36.java
new file mode 100644
index 0000000..7b3a20a
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask36.java
@@ -0,0 +1,49 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask36 {
+ public static void main(String[] args) {
+ int[] a = new int[4];
+ for (int i = 0; i < 4; i++) {
+ a[i] = readVariable("Number " + i + ":");
+ }
+ int greatestCommonDivisor = getGreatestCommonDivisor(a);
+ System.out.println("Greatest Common Divisor: " + greatestCommonDivisor);
+
+ }
+
+ private static int getGreatestCommonDivisor(int[] a) {
+ int greatestCommonDivisor = 1;
+ for (int i = 2; i <= getMax(a); i++) {
+ if (isDivisor(a, i)) {
+ greatestCommonDivisor = i;
+ }
+ }
+ return greatestCommonDivisor;
+ }
+
+ private static boolean isDivisor(int[] a, int i) {
+ boolean isDivisor = true;
+ for (int j = 0; j < 4 && isDivisor; j++) {
+ isDivisor = a[j] % i == 0;
+ }
+ return isDivisor;
+ }
+
+ private static int getMax(int[] a) {
+ int max = a[0];
+ for (int i = 0; i < 4; i++) {
+ if (a[i] > max) {
+ max = a[i];
+ }
+ }
+ return max;
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask37.java b/src/main/java/com/epam/intro/SubTask37.java
new file mode 100644
index 0000000..9c9e002
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask37.java
@@ -0,0 +1,26 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask37 {
+ public static void main(String[] args) {
+ double a = readVariable("Side: ");
+ double triangleSquare = getTriangleSquare(a);
+ double hexagonSquare = getHexagonSquare(triangleSquare);
+ System.out.println(hexagonSquare);
+ }
+
+ private static double getHexagonSquare(double triangleSquare) {
+ return 3 * triangleSquare;
+ }
+
+ private static double getTriangleSquare(double a) {
+ return a * a *Math.sqrt(3)/2;
+ }
+
+ public static double readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextDouble();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask38.java b/src/main/java/com/epam/intro/SubTask38.java
new file mode 100644
index 0000000..215d87f
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask38.java
@@ -0,0 +1,48 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask38 {
+ static class Point {
+ double x;
+ double y;
+ }
+
+ public static void main(String[] args) {
+ int countOfElements = readVariable("Count of points: ");
+ Point[] points = new Point[countOfElements];
+ for (int i = 0; i < countOfElements; i++) {
+ points[i] = new Point();
+ points[i].x = readDoubleVariable("x: ");
+ points[i].y = readDoubleVariable("y: ");
+ }
+ double maxDistance = 0.0;
+ for (int i = 0; i < points.length - 1; i++) {
+ Point checkPoint = points[i];
+ for (int j = i + 1; j < points.length; j++) {
+ maxDistance = Math.max(maxDistance, getDistance(checkPoint, points[j]));
+ }
+ }
+ System.out.println("Max distance: " + maxDistance);
+ }
+
+ private static double getDistance(Point checkPoint, Point currentPoint) {
+ return Math.sqrt(sqr(checkPoint.x - currentPoint.x) + sqr(checkPoint.y - currentPoint.y));
+ }
+
+ private static double sqr(Double delta) {
+ return Math.pow(delta, 2);
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+
+ public static double readDoubleVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextDouble();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask39.java b/src/main/java/com/epam/intro/SubTask39.java
new file mode 100644
index 0000000..834c419
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask39.java
@@ -0,0 +1,32 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask39 {
+ public static void main(String[] args) {
+ int lengthArray = readVariable("length of the array: ");
+ int[] a = new int[lengthArray];
+ for (int i = 0; i < lengthArray; i++) {
+ a[i] = readVariable("a[" + i + "]");
+
+ }
+ int max1 = a[0];
+ int max2 = Integer.MIN_VALUE;
+ for (int i = 0; i < lengthArray; i++) {
+ if (a[i] > max1) {
+ max2 = max1;
+ max1 = a[i];
+ }else if (a[i] > max2 && a[i]!=max1) {
+ max2 = a[i];
+ }
+ }
+ System.out.println("Maximum 2: " + max2);
+
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask4.java b/src/main/java/com/epam/intro/SubTask4.java
new file mode 100644
index 0000000..6b1abec
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask4.java
@@ -0,0 +1,77 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask4 {
+ static class Limit {
+ int position = 0;
+ double value = 0;
+
+ public Limit(int position, double value) {
+ this.position = position;
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return "Limit{" +
+ "position=" + position +
+ ", value=" + value +
+ '}';
+ }
+ }
+ static class Limits {
+ Limit min;
+ Limit max;
+
+ public Limits(Limit min, Limit max) {
+ this.min = min;
+ this.max = max;
+ }
+
+ @Override
+ public String toString() {
+ return "Limits{" +
+ "min=" + min +
+ ", max=" + max +
+ '}';
+ }
+ }
+
+ public static void main(String[] args) {
+ int n = readVariable("number of elements");
+ double[] a = new double[n];
+ for (int i = 0; i < n; i++) {
+ a[i] = readDoubleVariable("a[" + i + "]");
+ }
+ Limits limits = new Limits(new Limit(0, a[0]), new Limit(0, a[0]));
+ for (int i = 0; i < n; i++) {
+ if (a[i] > limits.max.value) {
+ limits.max.value = a[i];
+ limits.max.position = i;
+ }
+ if (a[i] max) {
+ max = a[i];
+ }
+ }
+ return max;
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask41.java b/src/main/java/com/epam/intro/SubTask41.java
new file mode 100644
index 0000000..f2424d1
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask41.java
@@ -0,0 +1,23 @@
+package com.epam.intro;
+
+public class SubTask41 {
+ public static void main(String[] args) {
+ System.out.println("Sum of factorials: " + sumOfFactorials());
+ }
+
+ public static long factorial(Long number) {
+ Long result = 1l;
+ for (int i = 1; i <= number; i++) {
+ result = result * i;
+ }
+ return result;
+ }
+
+ public static long sumOfFactorials() {
+ Long sum = 0l;
+ for (int i = 1; i <= 9; i = i + 2) {
+ sum = sum + factorial((long) i);
+ }
+ return sum;
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask42.java b/src/main/java/com/epam/intro/SubTask42.java
new file mode 100644
index 0000000..8953afe
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask42.java
@@ -0,0 +1,29 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask42 {
+ public static void main(String[] args) {
+ int lengthOfArray = readVariable("Length of array: ");
+ int k = readVariable("Left bound: ");
+ int m = readVariable("Right bound: ");
+ if (m + 2 >= lengthOfArray) {
+ throw new RuntimeException("Wrong right bound");
+ }
+ int[] a = new int[lengthOfArray];
+ for (int i = 0; i < lengthOfArray; i++) {
+ a[i] = readVariable("a" + "[" + i + "]");
+ }
+ for (int i = k; i <= m; i++) {
+ calculate(a,i);
+ }
+ }
+ public static void calculate (int[] a, int position) {
+ System.out.println(a[position] + a[position+1] + a[position+2]);
+ }
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask43.java b/src/main/java/com/epam/intro/SubTask43.java
new file mode 100644
index 0000000..ef12649
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask43.java
@@ -0,0 +1,36 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask43 {
+ public static void main(String[] args) {
+ double x = readVariable("x: ");
+ double y = readVariable("y: ");
+ double z = readVariable("z: ");
+ double t = readVariable("t: ");
+ double hypotenuse = Math.sqrt(x * x + y * y);
+ double squareOfFirstPart = x*y/2;
+ double squareOfSecondPart = getSquareOfSecondPart(z,t,hypotenuse);
+ if (Double.isNaN(squareOfSecondPart)) {
+ throw new RuntimeException("Lengths of sides are incorrect");
+ }
+ System.out.println("Square could be: " + (squareOfFirstPart - squareOfSecondPart > 0
+ ? (squareOfFirstPart + squareOfSecondPart) + " or " + (squareOfFirstPart - squareOfSecondPart)
+ : squareOfFirstPart + squareOfSecondPart));
+ }
+
+ private static double getSquareOfSecondPart(double a, double b, double c) {
+ double semiPerimeter = getSemiPerimeter(a,b,c);
+ return Math.sqrt(semiPerimeter * (semiPerimeter - a) * (semiPerimeter - b) * (semiPerimeter - c));
+ }
+
+ private static double getSemiPerimeter(double a, double b, double c) {
+ return (a + b + c)/2;
+ }
+
+ public static double readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextDouble();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask44.java b/src/main/java/com/epam/intro/SubTask44.java
new file mode 100644
index 0000000..d2456b9
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask44.java
@@ -0,0 +1,26 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask44 {
+ public static void main(String[] args) {
+ int n = readVariable("Number: ");
+ String string = Integer.toString(n);
+ int [] a = new int[string.length()];
+ calculateArray(string, a);
+ }
+
+ private static void calculateArray(String string, int[] a) {
+ for (int i = 0; i < string.length(); i++) {
+ a[i] = Integer.parseInt(string.substring(i,i+1));
+ System.out.print(a[i] + " ");
+ }
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
+
diff --git a/src/main/java/com/epam/intro/SubTask45.java b/src/main/java/com/epam/intro/SubTask45.java
new file mode 100644
index 0000000..799d8f0
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask45.java
@@ -0,0 +1,31 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask45 {
+ public static void main(String[] args) {
+ int a = readVariable("Number: ");
+ int b = readVariable("Number: ");
+ String aString = Integer.toString(a);
+ String bString = Integer.toString(b);
+ calculateLength(a, b, aString, bString);
+ }
+
+ private static void calculateLength(int a, int b, String aString, String bString) {
+ if (aString.length() > bString.length()) {
+ System.out.println("There are more digits in number " + a);
+ }
+ if (aString.length() == bString.length()) {
+ System.out.println("There are equal count of digits in two numbers");
+ }
+ if (aString.length() < bString.length()) {
+ System.out.println("There are more digits in number " + b);
+ }
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask46.java b/src/main/java/com/epam/intro/SubTask46.java
new file mode 100644
index 0000000..699ad03
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask46.java
@@ -0,0 +1,47 @@
+package com.epam.intro;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Scanner;
+
+public class SubTask46 {
+ public static void main(String[] args) {
+ int k = readVariable("Number: ");
+ int n = readVariable("Number: ");
+ List list = new ArrayList();
+ for (int i = 0; i < n; i++) {
+ int sum = getSumOfNumbers(i);
+ if (sum == k) {
+ list.add(i);
+ }
+ }
+ for (int i = 0; i < list.size(); i++) {
+ System.out.print(list.get(i) + " ");
+ }
+
+ }
+
+ private static int getSumOfNumbers(int i) {
+ String iString = Integer.toString(i);
+ int[] a = getIntegerAsArray(iString);
+ int sum = 0;
+ for ( int j = 0; j < iString.length(); j++) {
+ sum = sum + a[j];
+ }
+ return sum;
+ }
+
+ private static int[] getIntegerAsArray(String iString) {
+ int[] a = new int[iString.length()];
+ for (int j = 0; j < iString.length(); j++) {
+ a[j] = Integer.parseInt(iString.substring(j, j+1));
+ }
+ return a;
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask47.java b/src/main/java/com/epam/intro/SubTask47.java
new file mode 100644
index 0000000..ec7964e
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask47.java
@@ -0,0 +1,31 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask47 {
+ public static void main(String[] args) {
+ int n = readVariable("Number: ");
+ for (int i = n; i < 2*n; i++) {
+ if (isSimple(i) && isSimple(i+2)) {
+ System.out.println(i + " " + (i+2));
+ }
+ }
+ }
+
+ private static boolean isSimple(int i) {
+ boolean result = true;
+ for (int j = 2; j < i; j++) {
+ if (i%j == 0) {
+ result = false;
+ break;
+ }
+ }
+ return result;
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask48.java b/src/main/java/com/epam/intro/SubTask48.java
new file mode 100644
index 0000000..c6e00c9
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask48.java
@@ -0,0 +1,38 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask48 {
+ public static void main(String[] args) {
+ int k = readVariable("Number: ");
+ for (int i = 1; i < k; i++) {
+ if (i == getArmstrongNumbers(i)) {
+ System.out.println(i);
+ }
+ }
+ }
+
+ private static int getArmstrongNumbers(int i) {
+ String iString = Integer.toString(i);
+ int[] a = getIntegerAsArray(iString);
+ int sum = 0;
+ for (int j = 0; j < iString.length(); j++) {
+ sum = sum + (int) Math.pow(a[j],iString.length());
+ }
+ return sum;
+ }
+
+ private static int[] getIntegerAsArray(String iString) {
+ int[] a = new int[iString.length()];
+ for (int j = 0; j < iString.length(); j++) {
+ a[j] = Integer.parseInt(iString.substring(j, j + 1));
+ }
+ return a;
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask49.java b/src/main/java/com/epam/intro/SubTask49.java
new file mode 100644
index 0000000..3b2ad57
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask49.java
@@ -0,0 +1,50 @@
+package com.epam.intro;
+
+import java.util.Arrays;
+import java.util.Scanner;
+
+public class SubTask49 {
+ public static void main(String[] args) {
+ int n = readVariable("Number: ") - 1;
+ int firstNumber = generateFirstNumber(n);
+ int lastNumber = generateFirstNumber(n+1);
+ for (int i = firstNumber; i < lastNumber; i++) {
+ String iString = String.valueOf(i);
+ int[] iArray = getIntegerAsArray(iString);
+ iArray = sort(iArray);
+ int result = arrayToInt(iArray);
+ if (result == i) {
+ System.out.println(result);
+ }
+ }
+ }
+
+ private static int generateFirstNumber(int numberOfDigits) {
+ return Integer.parseInt(String.format("1%0" + numberOfDigits + "d", 0));
+ }
+ private static int arrayToInt(int[] a) {
+ String result = "";
+ for (int i = 0; i < a.length; i++) {
+ result = result + a[i];
+ }
+ return Integer.parseInt(result);
+ }
+ private static int[] sort(int[] a) {
+ return Arrays.stream(a).distinct().sorted().toArray();
+ }
+
+ private static int[] getIntegerAsArray(String iString) {
+ int[] a = new int[iString.length()];
+ for (int j = 0; j < iString.length(); j++) {
+ a[j] = Integer.parseInt(iString.substring(j, j + 1));
+ }
+ return a;
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask5.java b/src/main/java/com/epam/intro/SubTask5.java
new file mode 100644
index 0000000..f9fc584
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask5.java
@@ -0,0 +1,25 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask5 {
+ public static void main(String[] args) {
+ int n = readVariable("number of elements");
+ int[] a = new int[n];
+ for (int i = 0; i < n; i++) {
+ a[i] = readVariable("a[" + i + "]");
+ }
+ for (int i = 0; i < n; i++) {
+ if (a[i] > i) {
+ System.out.print(a[i] + " ");
+ }
+ }
+
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask50.java b/src/main/java/com/epam/intro/SubTask50.java
new file mode 100644
index 0000000..31bc64e
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask50.java
@@ -0,0 +1,49 @@
+package com.epam.intro;
+
+import java.util.Arrays;
+import java.util.Scanner;
+
+public class SubTask50 {
+ public static void main(String[] args) {
+ int n = readVariable("Number: ") - 1;
+ int firstNumber = generateFirstNumber(n);
+ int lastNumber = generateFirstNumber(n + 1);
+ int sum = 0;
+ for (int i = firstNumber; i < lastNumber; i++) {
+ sum = isDoesNumberHoldsEvenDigits(i) ? sum : (sum + i);
+ }
+ System.out.println(sum);
+ long numberOfEven = getNumberOfEven(sum);
+ System.out.println(numberOfEven);
+ }
+
+ private static long getNumberOfEven(int sum) {
+ String sumString = String.valueOf(sum);
+ return Arrays.stream(getIntegerAsArray(sumString)).filter(it -> it % 2 == 0).count();
+ }
+
+ private static boolean isDoesNumberHoldsEvenDigits(int i) {
+ String iString = String.valueOf(i);
+ int[] iArray = getIntegerAsArray(iString);
+ return Arrays.stream(iArray).boxed().anyMatch(it -> it % 2 == 0);
+ }
+
+ private static int generateFirstNumber(int numberOfDigits) {
+ return Integer.parseInt(String.format("1%0" + numberOfDigits + "d", 0));
+ }
+
+ private static int[] getIntegerAsArray(String iString) {
+ int[] a = new int[iString.length()];
+ for (int j = 0; j < iString.length(); j++) {
+ a[j] = Integer.parseInt(iString.substring(j, j + 1));
+ }
+ return a;
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask51.java b/src/main/java/com/epam/intro/SubTask51.java
new file mode 100644
index 0000000..2443137
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask51.java
@@ -0,0 +1,42 @@
+package com.epam.intro;
+
+import java.util.Arrays;
+import java.util.Scanner;
+
+public class SubTask51 {
+ public static void main(String[] args) {
+ int n = readVariable("Number: ");
+ int count = 0;
+ while (n != 0) {
+ count++;
+ n = recalculate(n);
+ }
+ System.out.println(count);
+
+ }
+
+ private static int recalculate(int n) {
+ String nString = String.valueOf(n);
+ int[] nArray = getIntegerAsArray(nString);
+ int result = n;
+ for (int i = 0; i < nArray.length; i++) {
+ result -= nArray[i];
+ }
+ return result;
+ }
+
+ private static int[] getIntegerAsArray(String iString) {
+ int[] a = new int[iString.length()];
+ for (int j = 0; j < iString.length(); j++) {
+ a[j] = Integer.parseInt(iString.substring(j, j + 1));
+ }
+ return a;
+ }
+
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextInt();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask6.java b/src/main/java/com/epam/intro/SubTask6.java
new file mode 100644
index 0000000..31fce72
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask6.java
@@ -0,0 +1,42 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask6 {
+ public static void main(String[] args) {
+ int n = readVariable("number of elements");
+ double sum = 0;
+ double[] a = new double[n];
+ for (int i = 0; i < n; i++) {
+ a[i] = readDoubleVariable("a[" + i + "]");
+ }
+ for (int i = 2; i < n; i++) {
+ boolean isSimple = true;
+ for (int j = 2; j < i; j++) {
+ if (i % j != 0) {
+ isSimple = false;
+ break;
+ }
+ }
+ sum = sum + a[i];
+ }
+ System.out.println("The result is: " + sum);
+
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ int result = scanner.nextInt();
+ if (result < 0) {
+ throw new RuntimeException("It must be more than 0");
+ }
+ return result;
+ }
+
+ public static double readDoubleVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextDouble();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask7.java b/src/main/java/com/epam/intro/SubTask7.java
new file mode 100644
index 0000000..1ead0dd
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask7.java
@@ -0,0 +1,38 @@
+package com.epam.intro;
+
+import java.util.Scanner;
+
+public class SubTask7 {
+ public static void main(String[] args) {
+ int n = readVariable("number of elements");
+ double[] a = new double[2 * n];
+ for (int i = 0; i < 2 * n; i++) {
+ a[i] = readDoubleVariable("a[" + i + "]");
+ }
+ double max = a[0] + a[2 * n - 1];
+ for (int i = 0; i < n; i++) {
+ double sum = a[i] + a[2 * n - i - 1];
+ if (sum > max) {
+ max = sum;
+ }
+ }
+ System.out.println("The result is: " + max);
+
+ }
+
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ int result = scanner.nextInt();
+ if (result < 0) {
+ throw new RuntimeException("It must be more than 0");
+ }
+ return result;
+ }
+
+ public static double readDoubleVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ return scanner.nextDouble();
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask8.java b/src/main/java/com/epam/intro/SubTask8.java
new file mode 100644
index 0000000..5583b99
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask8.java
@@ -0,0 +1,27 @@
+package com.epam.intro;
+
+import java.util.Arrays;
+import java.util.Scanner;
+import java.util.stream.Collectors;
+
+public class SubTask8 {
+ public static void main(String[] args) {
+ int n = readVariable("number of elements");
+ int[] a = new int[n];
+ for (int i = 0; iit>min).boxed().map(it->it+" ").forEach(System.out::print);
+
+ }
+ public static int readVariable(String variableName) {
+ System.out.println("Please input " + variableName);
+ Scanner scanner = new Scanner(System.in);
+ int result = scanner.nextInt();
+ if (result <0 ){
+ throw new RuntimeException("It must be more than 0");
+ }
+ return result;
+ }
+}
diff --git a/src/main/java/com/epam/intro/SubTask9.java b/src/main/java/com/epam/intro/SubTask9.java
new file mode 100644
index 0000000..788bd95
--- /dev/null
+++ b/src/main/java/com/epam/intro/SubTask9.java
@@ -0,0 +1,57 @@
+package com.epam.intro;
+
+import java.util.*;
+
+public class SubTask9 {
+ static class MinFromMostPopulars {
+ int count = 0;
+ int value;
+
+ public MinFromMostPopulars(int count, int value) {
+ this.count = count;
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return "MinFromMostPopulars{" +
+ "count=" + count +
+ ", value=" + value +
+ '}';
+ }
+ }
+ public static void main(String[] args) {
+ int n = readVariable("number of elements");
+ int[] a = new int[n];
+ for (int i = 0; i < n; i++) {
+ a[i] = readVariable("a[" + i + "]");
+ }
+ Map counterMap = new HashMap<>();
+ for (int i = 0; i < n; i++) {
+ counterMap.putIfAbsent(a[i], 0);
+ int count = counterMap.get(a[i]);
+ counterMap.put(a[i], count + 1);
+ }
+ Map.Entry firstElement = counterMap.entrySet().iterator().next();
+ MinFromMostPopulars minFromMostPopulars = new MinFromMostPopulars(firstElement.getValue(), firstElement.getKey());
+ for (Map.Entry entry: counterMap.entrySet() ){
+ if (entry.getValue() > minFromMostPopulars.count) {
+ minFromMostPopulars.count = entry.getValue();
+ minFromMostPopulars.value = (entry.getKey());
+ }else if (entry.getValue() == minFromMostPopulars.count){
+ if (entry.getKey()