diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/.gitignore b/Algoritmi_2/Laboratorio/Lab10/Es1/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..f68d1099657e34d4e7a68aadc730b3ecad84667d
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es1/.gitignore
@@ -0,0 +1,29 @@
+### IntelliJ IDEA ###
+out/
+!**/src/main/**/out/
+!**/src/test/**/out/
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+bin/
+!**/src/main/**/bin/
+!**/src/test/**/bin/
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/.gitignore b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/misc.xml b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..69ace3f6affaf674f40a55887f3d6f3564afd626
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/misc.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="openjdk-21" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/modules.xml b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b5fa01976a96eb535ee3cdbbd75e83cd74e1ec33
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/Es1.iml" filepath="$PROJECT_DIR$/Es1.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/vcs.xml b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4fce1d86b49521afe1cee4ed1c13b6396ebbc6f3
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es1/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/Es1.iml b/Algoritmi_2/Laboratorio/Lab10/Es1/Es1.iml
new file mode 100644
index 0000000000000000000000000000000000000000..9aa92e91148f2596fbd6a72b38da2b1073d984c6
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es1/Es1.iml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/Test" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../../graphLib.jar!/" />
+        </CLASSES>
+        <JAVADOC>
+          <root url="jar://$MODULE_DIR$/../../graphLib.jar!/doc" />
+        </JAVADOC>
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library" scope="TEST">
+      <library name="JUnit5.8.1">
+        <CLASSES>
+          <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter/5.8.1/junit-jupiter-5.8.1.jar!/" />
+          <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-api/5.8.1/junit-jupiter-api-5.8.1.jar!/" />
+          <root url="jar://$MAVEN_REPOSITORY$/org/opentest4j/opentest4j/1.2.0/opentest4j-1.2.0.jar!/" />
+          <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-commons/1.8.1/junit-platform-commons-1.8.1.jar!/" />
+          <root url="jar://$MAVEN_REPOSITORY$/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar!/" />
+          <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-params/5.8.1/junit-jupiter-params-5.8.1.jar!/" />
+          <root url="jar://$MAVEN_REPOSITORY$/org/junit/jupiter/junit-jupiter-engine/5.8.1/junit-jupiter-engine-5.8.1.jar!/" />
+          <root url="jar://$MAVEN_REPOSITORY$/org/junit/platform/junit-platform-engine/1.8.1/junit-platform-engine-1.8.1.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+  </component>
+</module>
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/Test/TestMSI.java b/Algoritmi_2/Laboratorio/Lab10/Es1/Test/TestMSI.java
new file mode 100644
index 0000000000000000000000000000000000000000..f3a31b79013d95ba5e2a82d00f5ffd905d2cbdc8
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es1/Test/TestMSI.java
@@ -0,0 +1,44 @@
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class TestMSI {
+    @Test
+    void testCostructor() {
+        int[] w = new int[5];
+        MSI testMSI = new MSI(w);
+        Assertions.assertNotNull(testMSI);
+    }
+
+    @Test
+    void testGetMaxVal() {
+        {
+            int[] w = {3, 2, 5, 6, 1};
+            MSI testMSI = new MSI(w);
+            Assertions.assertEquals(testMSI.getMaxVal(), 9);
+        }
+        {
+            int[] w = {2, 3, 4, 5, 1, 7};
+            MSI testMSI = new MSI(w);
+            Assertions.assertEquals(testMSI.getMaxVal(), 15);
+        }
+    }
+
+    @Test
+    void testGetOptSol() {
+        {
+            int[] w = {3, 2, 5, 6, 1};
+            MSI testMSI = new MSI(w);
+            System.out.println(testMSI.getOptSol());
+        }
+        {
+            int[] w = {2, 3, 4, 5, 1, 7};
+            MSI testMSI = new MSI(w);
+            System.out.println(testMSI.getOptSol());
+        }
+        {
+            int[] w = {1, 999, 1, 5};
+            MSI testMSI = new MSI(w);
+            System.out.println(testMSI.getOptSol());
+        }
+    }
+}
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/src/MSI.java b/Algoritmi_2/Laboratorio/Lab10/Es1/src/MSI.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ce67e48aa82491423551ac9a9b934aa58f09591
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es1/src/MSI.java
@@ -0,0 +1,64 @@
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+
+public class MSI {
+    private final int[] myWeight;
+
+    public MSI(int[] w) {
+        myWeight = w;
+    }
+
+    private int foundMSI(int[] arr) {
+        arr[0] = myWeight[0];
+        arr[1] = Math.max(myWeight[0], myWeight[1]);
+
+        for (int i = 2; i < arr.length; ++i) {
+            arr[i] = Math.max(arr[i - 1], (arr[i - 2] + myWeight[i]));
+        }
+        return arr[arr.length - 1];
+    }
+
+    private ArrayList<Integer> foundOptSol(boolean node) {
+        int[] arr = new int[myWeight.length];
+        foundMSI(arr);
+
+        ArrayList<Integer> solution = new ArrayList<>();
+
+        int i = arr.length - 1;
+        while (i > 0) {
+            if (arr[i] > arr[i - 1]) {
+                solution.add(i);
+                i -= 2;
+            } else {
+                --i;
+            }
+        }
+        if (i == 0) {
+            solution.add(i);
+        }
+        Collections.reverse(solution);
+
+        if (!node) {
+            return solution;
+        } else {
+            ArrayList<Integer> nodesSolution = new ArrayList<>();
+
+            for (int el : solution) {
+                nodesSolution.add(myWeight[el]);
+            }
+            return nodesSolution;
+        }
+
+    }
+
+    public int getMaxVal() {
+        int[] arr = new int[myWeight.length];
+        return foundMSI(arr);
+    }
+
+    public ArrayList<Integer> getOptSol() {
+        boolean nodePrint = true;
+        return foundOptSol(nodePrint);
+    }
+}
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es1/src/Main.java b/Algoritmi_2/Laboratorio/Lab10/Es1/src/Main.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e59c38fbd57497a72e78859efacc67ac75869da
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es1/src/Main.java
@@ -0,0 +1,5 @@
+public class Main {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+    }
+}
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/.gitignore b/Algoritmi_2/Laboratorio/Lab10/Es2/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..f68d1099657e34d4e7a68aadc730b3ecad84667d
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es2/.gitignore
@@ -0,0 +1,29 @@
+### IntelliJ IDEA ###
+out/
+!**/src/main/**/out/
+!**/src/test/**/out/
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+bin/
+!**/src/main/**/bin/
+!**/src/test/**/bin/
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/.gitignore b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..26d33521af10bcc7fd8cea344038eaaeb78d0ef5
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/misc.xml b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..69ace3f6affaf674f40a55887f3d6f3564afd626
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/misc.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="openjdk-21" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/modules.xml b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4a05d8d522666d443eb4fafdb7607ecf3df0176a
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/Es2.iml" filepath="$PROJECT_DIR$/Es2.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/vcs.xml b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4fce1d86b49521afe1cee4ed1c13b6396ebbc6f3
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es2/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/../../../.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/Es2.iml b/Algoritmi_2/Laboratorio/Lab10/Es2/Es2.iml
new file mode 100644
index 0000000000000000000000000000000000000000..c90834f2d607afe55e6104d8aa2cdfffb713f688
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es2/Es2.iml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/src/Atletica.java b/Algoritmi_2/Laboratorio/Lab10/Es2/src/Atletica.java
new file mode 100644
index 0000000000000000000000000000000000000000..300a3dc225fa07b9b1b8ae81594a7c3f35a7740f
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es2/src/Atletica.java
@@ -0,0 +1,35 @@
+public class Atletica {
+    private final int weigthLength;
+
+    public Atletica(int numeroDiscipline) {
+        weigthLength = numeroDiscipline;
+    }
+
+    private int foundMSI(int[] myWeight) {
+        int[] arr = new int[myWeight.length];
+        arr[0] = myWeight[0];
+        arr[1] = Math.max(myWeight[0], myWeight[1]);
+
+        for (int i = 2; i < arr.length; ++i) {
+            arr[i] = Math.max(arr[i - 1], (arr[i - 2] + myWeight[i]));
+        }
+        return arr[arr.length - 1];
+    }
+
+    public int scelta(int[] rendAtleta1, int[] rendAtleta2) {
+        if (rendAtleta1.length != weigthLength || rendAtleta2.length != weigthLength) {
+            throw new IllegalArgumentException("Le lunghezze non sono uguali");
+        }
+        int MSIAtleta1 = foundMSI(rendAtleta1);
+        int MSIAtleta2 = foundMSI(rendAtleta2);
+        if (MSIAtleta1 == MSIAtleta2) {
+            return 0;
+        }
+
+        if (MSIAtleta1 > MSIAtleta2) {
+            return 1;
+        } else {
+            return 0;
+        }
+    }
+}
diff --git a/Algoritmi_2/Laboratorio/Lab10/Es2/src/Main.java b/Algoritmi_2/Laboratorio/Lab10/Es2/src/Main.java
new file mode 100644
index 0000000000000000000000000000000000000000..3e59c38fbd57497a72e78859efacc67ac75869da
--- /dev/null
+++ b/Algoritmi_2/Laboratorio/Lab10/Es2/src/Main.java
@@ -0,0 +1,5 @@
+public class Main {
+    public static void main(String[] args) {
+        System.out.println("Hello world!");
+    }
+}
\ No newline at end of file