#include #include FILE *in; int matriz[105][205]; int n; int max; int ct; void inicia() { int i,j; for (i=0;i<=n+2;i++) for (j=0;j<=(i*2-1)+2;j++) matriz[i][j]=0; } int testa(int a,int b,int comp) { int j; if (comp==-1) return 1; for (j=b;j=1;i--) { for (j=1;j<=(2*i-1);j++) { if (matriz[i][j]==2) { c=j+1; while (matriz[i][c]==2)c++; l=c-j; if (l%2==0)l--; while (l>max) { if ((j%2)!=0) { if (testa(i,j,l)) { max=l; } } else { if (testa2(i,j,l)) { max=l; } } l=l-2; } } } } inicia(); printf("Triangle #%d\n",ct); ct++; printf("The largest triangle area is %d.\n\n",t(max)); } int read_case() { int i,j; char c; fscanf(in,"%d",&n); fscanf(in,"%c",&c); if (n==0) return(0); inicia(); for(i=n;i>0;i--) { j=0; while (j<(n-i)) { fscanf(in,"%c",&c); j++; } for (j=1;j<=(2*i-1);j++) { fscanf(in,"%c",&c); if (c=='#') matriz[i][j]=1; if (c=='-') matriz[i][j]=2; } fscanf(in,"%c",&c); } return 1; } int main() { ct=1; in=fopen("triangle.in","r"); while (read_case())solve_case(); fclose(in); return 0; }