#include <iostream>
#include <vector>
using namespace std;
int count = 0;//用于记录数字使用情况作为判断依据
int flag = false;//初始化dfs判断结果
vector<bool> visited(4,false);//用于标记数字是否使用过
void dfs(vector<int> arr, double sum);//得用double,只认整24
int main() {
vector<int> num(4,0);
while(cin >> num[0] >> num[1] >> num[2] >> num[3]){
dfs(num,0);
if(flag)
cout << "true" << endl;
else
cout << "false" << endl;
}
}
void dfs(vector<int> arr, double sum){
if(count == 4 && sum == 24){//数字全部使用且结果为24
flag = 1;//可获得24
return;
}
for(int i = 0; i < 4; i++){
if(visited[i] == false){
visited[i] = true;//标记该数字已使用过
count++;//记录数字使用个数
dfs(arr, sum + arr[i]);
dfs(arr, sum - arr[i]);//一开始sum=0 - 第一个数会出问题的吧?是有负数开始得24,但会被其他覆盖,暂时没找到更多例子
dfs(arr, sum * arr[i]);
dfs(arr, sum / arr[i]);
visited[i] = false;//回溯恢复状态
count--;//回溯恢复状态
}
}
}