#include <stdio.h>
/* 标记此对应此位置得数据是否被使用 1:已使用 0: 未被使用 */
int vis[4] = {0, 0, 0, 0};
int DFS(int* data, int s)
{
if(s == 24)
{
return 1;
}
for(int i = 0; i < 4; i++)
{
if(vis[i] == 0)
{
/* 被使用,置1 */
vis[i] = 1;
/* 尝试四种运算 */
if(DFS(data, s + data[i]) || DFS(data, s - data[i]) || DFS(data, s * data[i]) || DFS(data, s / data[i]))
{
return 1;
}
/* 无法找到 ,回退*/
vis[i] = 0;
}
}
return 0;
}
int main()
{
int data[4];
for(int i = 0; i < 4; i++)
{
scanf("%d", &data[i]);
}
/* 第一个数据 标记已使用 */
vis[0] = 1;
if(DFS(data, data[0]))
{
printf("true");
}
else
{
printf("false");
}
return 0;
}