WA了几次
#include<algorithm>
using namespace std;
#include<stdio.h>
int arr[5];
bool exist;
void cal(int sum,int cur)
{
if(cur==5)
{
if(sum == 23)
{
exist = true;
}
return;
}
cal(sum+arr[cur],cur+1);
cal(sum-arr[cur],cur+1); //不对,相当于arr[0]被取负数
//cal((cur?sum:1)*arr[cur],cur+1);
cal(sum*arr[cur],cur+1);
}
int main()
{
//
freopen("input.txt","r",stdin);
//freopen("out.txt","w",stdout);
while(scanf("%d%d%d%d%d",arr,arr+1,arr+2,arr+3,arr+4)==5)
{
if(!arr[0] &&!arr[1] &&!arr[2] &&!arr[3] &&!arr[4])
break;
exist = false;
sort(arr,arr+5);
do
{
//cal(0,0);
cal(arr[0],1);
}while(next_permutation(arr,arr+5)&&!exist);
if(exist)
puts("Possible");
else
puts("Impossible");
}
}