diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..6a69f92020f5df77af6e8813ff1232493383b708
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+f
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..e556b830cfd4d2bf3f4501b4ff7cf2ce00c052ef
--- /dev/null
+++ b/Makefile
@@ -0,0 +1 @@
+w
diff --git a/main.c b/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..23432e01b24c4102ccc3d094f2574c46975526be
--- /dev/null
+++ b/main.c
@@ -0,0 +1,33 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+
+int main(int argc, char const *argv[]) {
+    printf("Ler o tabuleiro (em matriz?)\n");
+    printf("Enquanto pilha não vazia:\n");
+    printf("\tPega os adjacentes do grupo (retorna os pesos dos filhos = montar o grafo)\n");
+    printf("\tEscolhe filho de maior peso\n");
+    printf("\tEmpilha os outros filhos\n");
+    printf("\tSE tamanho do caminho atual + filhos do nodo atual >= menor caminho: VOLTA!\n");
+    printf("\tSE soma do peso total = tamanho do tabuleiro: VOLTA! Retorna o caminho encontrado\n");
+    return 0;
+}
+
+// pilha global
+// {
+//      identificador: "passo"
+//      valor original
+//      posição
+// }
+
+// {
+//      identificador: 4
+//      valor original: 2
+//      posição: 0,0
+// },
+// {
+//      identificador: 5
+//      valor original: 4
+//      posição: 0,0 - 0,1 - 1,0 - 2,0
+// }
+//
diff --git a/tests/1 b/tests/1
new file mode 100644
index 0000000000000000000000000000000000000000..16ccf22dbe7e88a9c07834f8095bc76296fd3dad
--- /dev/null
+++ b/tests/1
@@ -0,0 +1,5 @@
+4 5 3
+2 3 2 3 2
+2 1 2 3 3
+3 1 2 3 2
+1 2 2 1 3