Alguém poderia me ajudar nessa questão da OBI de 2015, fase 2 e se chama mina? Usando recursividade de preferência.
import java.util.Scanner;
public class Mina {
int x;
int in=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner leitor = new Scanner(System.in);
int n,i,i2,cont1,cont2,x;
x=0;
cont1=0;
cont2=0;
Mina mina=new Mina();
int vet[][], vet2[][];
n=leitor.nextInt();
vet = new int [n][n];
vet2 = new int [n][n];
for(i=0;i<n;i++){
for(i2=0;i2<n;i2++){
vet[i][i2]=leitor.nextInt();
vet2[i][i2]=0;
}
}
for(i=0;i<n;i++){
for(i2=0;i2<n;i2++){
System.out.println(vet[i][i2]+" “+i+” "+i2);
}
}
System.out.println("");
mina.mina(vet2,vet,cont1,cont2,x,n,mina);
System.out.println(mina.getX());
}
void mina(int[][] vet2,int[][] vet,int cont1, int cont2,int x,int n,Mina mina){
int vett2[][]=new int[n][n];
vett2=vet2;
vett2[cont1][cont2]=-1;
System.out.println(" ");
System.out.println(cont1+" "+cont2);
System.out.println(" ");
if((cont1==n-1)&&(cont2==n-1)){
System.out.println(x+"asd");
mina.setX(x);
}else{
if(vet[cont1][cont2]==1){
System.out.println(cont1+" aqui "+cont2+" "+vet[cont1][cont2]);
x=x+1;
}
if(cont1+1<n){
System.out.println("oloco");
System.out.println(vett2[n-1][n-1]);
for(int i=0;i<n;i++){
for(int i2=0;i2<n;i2++){
System.out.println(vett2[i][i2]+" "+i+" "+i2);
}
}
if(vett2[cont1+1][cont2]==0){
System.out.println("cont1+ "+(cont1+1));
mina.mina(vett2, vet, cont1+1, cont2, x, n, mina);
}
}
if(cont1-1>-1){
if(vett2[cont1-1][cont2]==0){
System.out.println("cont1- "+(cont1-1));
mina.mina(vett2, vet, cont1-1, cont2, x, n, mina);
}
}
if(cont2+1<n){
if(vett2[cont1][cont2+1]==0){
System.out.println("cont2+ "+(cont2+1));
mina.mina(vett2, vet, cont1, cont2+1, x, n, mina);
}
}
if(cont2-1>-1){
if(vett2[cont1][cont2-1]==0){
System.out.println("cont2- "+(cont2-1));
mina.mina(vett2, vet, cont1, cont2-1, x, n, mina);
}
}
}
}
void setX(int x){
if(in==0){
in=1;
this.x=x;
}else if(this.x>x){
this.x=x;
}
}
int getX(){
return x;
}
}
Eu fiz esse código. O problema que eu acho que estou tendo é a questão das variáveis. A cada vez que eu chamo a função mina, o que acontece quando modifico um valor de uma variável?? Esse valor vai para todas as funções chamadas?? Por exemplo o vet2 e o vett2. E ignorem esses System, pois eu estava testando, para tentar identificar o(s) problema(s).