int win(int a[]){ int b[11]; int i=0 ; int ret= 0; set(b); for(i=0 ; i< 11 ; i++){ if ( valid1(i,a) ){ copy(b,a); put1(i,b); ret|= !win(b); } if ( valid2(i,a) ){ copy(b,a); put2(i,b); ret|= !win(b); } if ( valid3(i,a) ){ copy(b,a); put3(i,b); ret|= !win(b); } } return ret; }
bool valid(int*nums){ double a = nums[0], b = nums[1], c = nums[2], d = nums[3]; if (valid3(a+b, c, d) || valid3(a-b, c, d) || valid3(a*b, c, d) || valid3(a/b, c, d)) return true; if (valid3(a, b+c, d) || valid3(a, b-c, d) || valid3(a, b*c, d) || valid3(a, b/c, d)) return true; if (valid3(a, b, c+d) || valid3(a, b, c-d) || valid3(a, b, c*d) || valid3(a, b, c/d)) return true; return false; }