CodeChef submission 799638 (C++ 4.3.2) plaintext list. Status: CE, problem INSOMA5, contest . By abhijeetsinha (abhijeetsinha), 2012-01-20 14:18:42.
#include<iostream> #include<cstdlib> #include<string> using namespace std; int true_mat[15][15]; int false_mat[15][15]; int main() { int length=size/2; for(int i=0;i<=size;i++) { if(expr[2*i]=='T') { true_mat[i][i]=1; false_mat[i][i]=0; } else { true_mat[i][i]=0; false_mat[i][i]=1; } } for(int l=2;l<=length+1;l++) { for(int i=0;i<=length-l+1;i++) { int j=i+l-1; for(int k=i;k<j;k++) { char op=expr[2*k+1]; if(op=='.') { true_mat[i][j]+=true_mat[i][k]*true_mat[k+1][j]; false_mat[i][j]+=true_mat[i][k]*false_mat[k+1][j]+ false_mat[i][k]*true_mat[k+1][j]+ false_mat[i][k]*false_mat[k+1][j]; } if(op=='*') { true_mat[i][j]+=true_mat[i][k]*false_mat[k+1][j]+ false_mat[i][k]*true_mat[k+1][j]; false_mat[i][j]+=true_mat[i][k]*true_mat[k+1][j]+ false_mat[i][k]*false_mat[k+1][j]; } if(op=='+') { true_mat[i][j]+=true_mat[i][k]*false_mat[k+1][j]+ false_mat[i][k]*true_mat[k+1][j]+ true_mat[i][k]*true_mat[k+1][j]; false_mat[i][j]+=false_mat[i][k]*false_mat[k+1][j]; } } } } return 0; }
Comments

