Cod sursa(job #1009473)

Utilizator RaduGabriel2012Dinu Radu RaduGabriel2012 Data 13 octombrie 2013 11:55:24
Problema Zebughil Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <cstdio>
#include <algorithm>
FILE *f=fopen("joc7.in","r"),*g=fopen("joc7.out","w");
using namespace std;
int n,m,a[31][31],use[100],sol=0;
void Read()
{ int i,j; char c;
   fscanf(f,"%d %d",&n,&m);
 for(i=1;i<=n;i++)
  {fscanf(f,"%c",&c);
    for(j=1;j<=m;j++)
     fscanf(f,"%c",&a[i][j]);
  }
}
void Back(int x,int y,int k)
{ int i;
   sol=max(sol,k);
   if (x+1<=n && !use[a[x+1][y]]) {use[a[x+1][y]]=1; Back(x+1,y,k+1); use[a[x+1][y]]=0;}
   if (x-1>=1 && !use[a[x-1][y]]) {use[a[x-1][y]]=1; Back(x-1,y,k+1); use[a[x-1][y]]=0;}
   if (y+1<=m && !use[a[x][y+1]]) {use[a[x][y+1]]=1; Back(x,y+1,k+1); use[a[x][y+1]]=0;}
   if (y-1>=1 && !use[a[x][y-1]]) {use[a[x][y-1]]=1; Back(x,y-1,k+1); use[a[x][y-1]]=0;}
}
int main()
{ Read();
  use[a[1][1]]=1;
  Back(1,1,1);
  fprintf(g,"%d",sol);
    return 0;
}