diff --git a/naloga5/.gitignore b/naloga5/.gitignore
new file mode 100644
index 0000000..f68d109
--- /dev/null
+++ b/naloga5/.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/naloga5/.idea/.gitignore b/naloga5/.idea/.gitignore
new file mode 100644
index 0000000..7bc07ec
--- /dev/null
+++ b/naloga5/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Environment-dependent path to Maven home directory
+/mavenHomeManager.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/naloga5/.idea/inspectionProfiles/Project_Default.xml b/naloga5/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..5b739d1
--- /dev/null
+++ b/naloga5/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/naloga5/.idea/misc.xml b/naloga5/.idea/misc.xml
new file mode 100644
index 0000000..49c5998
--- /dev/null
+++ b/naloga5/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/naloga5/.idea/modules.xml b/naloga5/.idea/modules.xml
new file mode 100644
index 0000000..35f2a92
--- /dev/null
+++ b/naloga5/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/naloga5/naloga5.iml b/naloga5/naloga5.iml
new file mode 100644
index 0000000..c90834f
--- /dev/null
+++ b/naloga5/naloga5.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/naloga5/src/Naloga5.java b/naloga5/src/Naloga5.java
new file mode 100644
index 0000000..d6168d7
--- /dev/null
+++ b/naloga5/src/Naloga5.java
@@ -0,0 +1,58 @@
+import java.util.ArrayList;
+
+public class Naloga5 {
+ static String[][] getEditDistanceAlignments(String s1, String s2) {
+ int m = s1.length();
+ int n = s2.length();
+ int[][] dp = new int[m + 1][n + 1];
+
+
+ for (int i = 0; i <= m; i++) dp[i][0] = i;
+ for (int j = 0; j <= n; j++) dp[0][j] = j;
+
+
+ for (int i = 1; i <= m; i++) {
+ for (int j = 1; j <= n; j++) {
+ if (s1.charAt(i - 1) == s2.charAt(j - 1)) {
+ dp[i][j] = dp[i - 1][j - 1];
+ } else {
+ dp[i][j] = 1 + Math.min(dp[i - 1][j - 1], Math.min(dp[i - 1][j], dp[i][j - 1]));
+ }
+ }
+ }
+
+ ArrayList result = new ArrayList<>();
+ backtrack(s1, s2, m, n, "", "", dp, result);
+
+ String[][] alignments = new String[result.size()][2];
+ for (int i = 0; i < result.size(); i++) {
+ alignments[i][0] = result.get(i)[0];
+ alignments[i][1] = result.get(i)[1];
+ }
+ return alignments;
+ }
+
+ static void backtrack(String s1, String s2, int i, int j, String aligned1, String aligned2, int[][] dp, ArrayList result) {
+ if (i == 0 && j == 0) {
+ result.add(new String[]{new StringBuilder(aligned1).reverse().toString(), new StringBuilder(aligned2).reverse().toString()});
+ return;
+ }
+
+ if (i > 0 && j > 0 && s1.charAt(i - 1) == s2.charAt(j - 1) && dp[i][j] == dp[i - 1][j - 1]) {
+ backtrack(s1, s2, i - 1, j - 1, aligned1 + s1.charAt(i - 1), aligned2 + s2.charAt(j - 1), dp, result);
+ }
+
+ if (i > 0 && j > 0 && dp[i][j] == dp[i - 1][j - 1] + 1) {
+ backtrack(s1, s2, i - 1, j - 1, aligned1 + s1.charAt(i - 1), aligned2 + s2.charAt(j - 1), dp, result);
+ }
+
+ if (i > 0 && dp[i][j] == dp[i - 1][j] + 1) {
+ backtrack(s1, s2, i - 1, j, aligned1 + s1.charAt(i - 1), aligned2 + '-', dp, result);
+ }
+
+ if (j > 0 && dp[i][j] == dp[i][j - 1] + 1) {
+ backtrack(s1, s2, i, j - 1, aligned1 + '-', aligned2 + s2.charAt(j - 1), dp, result);
+ }
+ }
+}
+