uva-10344 - 23 out of 5
来源:互联网 发布:淘宝做活动怎么做 编辑:程序博客网 时间:2024/06/07 13:12
Problem I
23 Out of 5
Input: standard input
Output: standard output
Time Limit: 1 second
Memory Limit: 32 MB
Your task is to write a program that can decide whether you can find an arithmetic expression consisting of five given numbers (1<=i<=5) that will yield the value 23.
For this problem we will only consider arithmetic expressions of the following from:
where : {1,2,3,4,5} -> {1,2,3,4,5} is a bijective function
and {+,-,*} (1<=i<=4)
Input
The Input consists of 5-Tupels of positive Integers, each between 1 and 50.
Input is terminated by a line containing five zero's. This line should not be processed.
Output
For each 5-Tupel print "Possible" (without quotes) if their exists an arithmetic expression (as described above) that yields 23. Otherwise print "Impossible".
Sample Input
1 1 1 1 1
1 2 3 4 5
2 3 5 7 11
0 0 0 0 0
Sample Output
Impossible
Possible
Possible
先枚举5个数的排列顺序,再搜索4个符号的状态+-*。
#include <iostream>#include <algorithm>using namespace std;int num[5]; int pos[5]; //保存5个数的排列顺序int search(int cur, int value){ if(cur == 5){ return value == 23 ? 1 : 0; } if(search(cur+1, value*num[pos[cur]])) return 1; if(search(cur+1, value+num[pos[cur]])) return 1; return search(cur+1, value-num[pos[cur]]);}int main(){ while(1){ int ans, sum = 0; for(int i = 0; i < 5; i++){ cin >> num[i]; sum += num[i]; pos[i] = i; } if(!sum) break; //全都为0跳出 循环 do{ ans = search(1, num[pos[0]]); if(ans) break; }while(next_permutation(pos, pos+5)); if(ans) cout << "Possible\n"; else cout << "Impossible\n"; } return 0;}
- Uva 10344 23 out of 5
- uva 10344 - 23 out of 5
- uva 10344 - 23 out of 5
- uva-10344 - 23 out of 5
- UVa 10344 - 23 out of 5
- uva 10344 - 23 out of 5
- UVa 10344 23 out of 5
- uva 10344 23 out of 5(DFS)
- UVA 10344 23 out of 5
- uva-10344 - 23 out of 5
- UVa:10344 23 out of 5
- uva 10344 23 out of 5
- uva 10344 23 Out of 5
- [回溯]23 out of 5 UVA 10344
- UVa 10344 - 23 out of 5
- UVa 10344 - 23 out of 5
- UVA 10344 - 23 out of 5
- uva-10344 - 23 out of 5
- Linux/UNIX下使用ssh-keygen设置SSH无密码登录
- 新人求助,zend studio 的调试问题
- mysql 存储引擎
- BlockingQueue
- 第七走项目四撞错
- uva-10344 - 23 out of 5
- 曼彻斯特编码器的vhdl实现代码
- 找出两个字符串中最大公共子字符串,如"abccade","dgcadde"的最大子串为"cad"
- 【Linux】【curl】对curl的研究
- 总结
- 一步一步 在mac上安装ubuntu
- vc6.0 MFC 添加控制台
- 使用Unity制作的,模拟了Scene视图查看对象的效果——查看器
- 一个例子,看懂AsnycTask