ZOJ 1145 Dreisam Equations(简单回溯)

During excavations in the Dreisamwuste, a desert on some far away and probably uncivilized planet, sheets of paper containing mysterious symbols had been found. After a long investigation, the project scientists have concluded that the symbols might be parts of equations. If this were true, it would be proof that the Dreisamwuste was civilized a long long time ago.

The problem, however, is that the only symbols found on the sheets are digits, parantheses and equality signs. There is strong evidence that the people living in the Dreisamwuste knew only of three arithmetic operations: addition, subtraction, and multiplication. It is also known that the people of the Dreisamwuste did not have prioritization rules for arithmetic operations - they evaluate all terms strictly left to right. For example, for them the term 3 + 3 * 5 would be equal to 30, and not 18.

But currently, the sheets do not contain any arithmetic operators. So if the hypothesis is true, and the numbers on the sheets form equations, then the operators must have faded away over time.

You are the computer expert who is supposed to find out whether the hypothesis is sensible or not. For some given equations (without arithmetic operators) you must find out if there is a possibility to place +, -, and * in the expression, so that it yields a valid equation. For example, on one sheet, the string ``18=7 (5 3) 2" has been discovered. Here, one possible solution is ``18=7+(5-3)*2". But if there was a sheet containing ``5=3 3", then this would mean that the Dreisamwuste people did not mean an equation when writing this.


Input

Each equation to deal with occupies one line in the input. Each line begins with a positive integer (less than 230) followed by an equality sign =. (For your convenience, the Dreisamwuste inhabitants used equations with trivial left sides only.) This is followed by up to 12 positive integers forming the right side of the equation. (The product of these numbers will be less than 230.) There might be some parentheses around groups of one or more numbers. There will be no line containing more than 80 characters. There is no other limit for the amount of the parentheses in the equation. There will always be at least one space or parenthesis between two numbers, otherwise the occurrence of white space is unrestricted.

The line containing only the number 0 terminates the input, it should not be processed.


Output

For each equation, output the line ``Equation #n:", where n is the number of the equation. Then, output one line containing a solution to the problem, i. e. the equation with the missing +, -, and * signs inserted. Do not print any white space in the equation.

If there is no way to insert operators to make the equation valid, then output the line ``Impossible".

Output one blank line after each test case.


Sample Input

18 = 7 (5 3) 2
30 = 3 3 5
18 = 3 3 5
5 = 3 3
0


Sample Output

Equation #1:
18=7+(5-3)*2

Equation #2:
30=3+3*5

Equation #3:
Impossible

Equation #4:
Impossible


Source: Mid-Central European Regional Contest 1999

#include
#include
#include
#include//int dx[4]={0,0,-1,1};int dy[4]={-1,1,0,0};
#include//int gcd(int a,int b){return b?gcd(b,a%b):a;}
#include
#include
#include
#include
#include
#include
#define mod 1e9+7
#define ll long long
#define maxn 250
#define MAX 500005
#define ms memset
using namespace std;
#pragma comment(linker, "/STACK:1024000000,1024000000") ///在c++中是防止暴栈用的
///2,3,4分别代表加号,减号,乘号
char  exs[maxn];
bool  isnum(char c) { return c<='9'&&c>='0';  }
int i,ans;
int num[maxn],cntn=0;///数字栈
int op[maxn],cntc=0;
int imposs;
int finalop;
int len;///表达式的长度
/*
题目大意:给定一串字符,
要求添加三种运算符号,使得等式成立,
并输出最后成立的结果等式,按题目要求
括号不影响顺序,这下运算就没那么复杂了。

本以为是水题,把扩展的位置检索并记录下来,
回溯三种运算符,时间复杂度为O(3^n),
回溯最后的结果直接再填回原来的表达式中即可。

最后的最后,这题还是没过,不知道哪里出错了,
请高手指点

*/
bool compute()
{
    ///现有num数组,和符号数组。
    int sum=num[0];
    int index=1;
    for(int i=0;i1) opstack[t++]=op[i];
    int j=0;
    for(int i=finalop;i= cntc )
    {
       if(compute()) ///输出
       {
          imposs=1;
          output();
       }
       return ;
     }
   op[t]=2;
   dfs(t+1);
   op[t]=3;
   dfs(t+1);
   op[t]=4;
   dfs(t+1);
}

void getans()
{
    ans=0,i=0;
    while( isnum(exs[i]) )
    {
        ans=ans*10+exs[i]-'0';
        i++;
    }
    i+=3;
    finalop=i;///记录要输出的位置
}

void read()
{
    len=strlen(exs);
    cntn=0,cntc=0;///初始化
    while(i='0')
  • BZOJ5441 [Ceoi2018]Cloud computing yjjr DPbzojOI成长历程思维背包
    标签:DP,思维题面Description农夫约翰创立了一家为客户提供云端计算服务的公司,但是他还没开始购买计算机。于是他去了电脑商店,看了商店里所有的n台电脑的配置属性列表。每台电脑的属性有CPU核心数量ci,工作频率fi,价格vi,即这台电脑有ci个可以独立工作,不会互相干扰的CPU核心,可以同时给每个CPU核心分配不同的任务。当一个客户在约翰的公司里下订单的时候,订单里会指定特定的CPU核心
  • BZOJ5442 [Ceoi2018]Global warming yjjr DP数据结构bzojOI成长历程
    标签:LIS,DP,树状数组题目题目传送门Description给定n(n≤200,000)n(n\leq200,000)n(n≤200,000),你可以将任意a[l]a[l]a[l]至a[r](1≤l≤r≤n)a[r](1\leql\leqr\leqn)a[r](1≤l≤r≤n)每一个元素加上一个d(−x≤d≤x)d(-x\leqd\leqx)d(−x≤d≤x),求aaa数组的最大严格上升子序列
  • BZOJ 1975 SDOI2010 魔法猪学院 A*k短路 PoPoQQQ 可并堆BZOJA*BZOJBZOJ1975A-stark短路
    题目大意:给定一个值E求起点到终点的最多条路径使长度之和不超过Ek短路的A*算法……每个点有一个估价函数=g[x]+h[x]其中g[x]是从源点出发已经走了的长度h[x]是从这个点到汇点的最短路首先先在反图上跑一遍SPFA求出每个点的h[x],然后将源点的g[x]+h[x]加入堆每次取出堆顶时将堆顶的g[x]向所连接的边扩展第k次取出汇点即是答案其中有一个剪枝就是当第k+1次取出某个点时不继续拓展
  • 算法竞赛中的数学 习题集1521-1530(10题) dllglvzhenfeng 程序猿的数学创新科普算法c++信奥中的数学程序员的数学GESP人工智能NOIP
    1、MagicBracelet2888--MagicBracelet2、Cipher1026--Cipher3、CARDS1721--CARDS4、伊格内修斯和公主三世Problem-10285、排列组合Problem-15216、"红色病毒"问题Problem-20657、Dividing1014--Dividing8、Chocolate1322--Chocolate9、Blocks3734--
  • 算法竞赛中的数学 习题集1501-1510(10题) dllglvzhenfeng 程序猿的数学创新科普算法c++信奥中的数学信息学竞赛中的数学程序员的数学人工智能GESP
    1、P2532[AHOI2012]树屋阶梯[AHOI2012]树屋阶梯-洛谷2、P1044[NOIP2003普及组]栈[NOIP2003普及组]栈-洛谷3、P1655小朋友的球小朋友的球-洛谷4、P5395第二类斯特林数·行第二类斯特林数·行-洛谷5、P5396第二类斯特林数·列第二类斯特林数·列-洛谷6、P5408第一类斯特林数·行第一类斯特林数·行-洛谷7、P5409第一类斯特林数·列第一类斯
  • 算法竞赛中的数学 习题集1491-1500(10题) dllglvzhenfeng 计算机考研机试创新程序猿的数学算法c++信奥中的数学信息学竞赛中的数学程序员的数学GESPNOIP
    1、P2675《瞿葩的数字游戏》T3-三角圣地《瞿葩的数字游戏》T3-三角圣地-洛谷2、P1450[HAOI2008]硬币购物[HAOI2008]硬币购物-洛谷3、P3349[ZJOI2016]小星星[ZJOI2016]小星星-洛谷4、P3270[JLOI2016]成绩比较[JLOI2016]成绩比较-洛谷5、P4336[SHOI2016]黑暗前的幻想乡[SHOI2016]黑暗前的幻想乡-洛谷6、
  • 3.1 项目经理的角色习题集 AlfredZSGao
    欢迎前往我的CSDN例题1项目经理对于项目取得成功能起关键作用。许多组织正在把更多的工作当项目来做,从而就需要更多项目经理。项目经理是:A.负责管理项目管理办公室的人B.对比较重要的职能部门的经理的专用称呼C.代表项目执行组织实现项目目标的个人D.特别优秀的专业技术人才解释:正确答案是C。项目执行组织委派项目经理去实现项目目标。A是项目管理办公室经理,不同于项目经理。B是完全错误的说法。项目经理需
  • P2392 kkksc03考前临时抱佛脚题解 互联网的猫 暴力枚举算法专题算法c++
    题目这次期末考试,kkksc03需要考4科。因此要开始刷习题集,每科都有一个习题集,分别有s1,s2,s3,s4道题目,完成每道题目需要一些时间,可能不等(A1,A2,…,As1,B1,B2,…,Bs2,C1,C2,…,Cs3,D1,D2,…,Ds4)。kkksc03有一个能力,他的左右两个大脑可以同时计算2道不同的题目,但是仅限于同一科。因此kkksc03必须一科一科的复习。由于kkksc03还
  • 详解洛谷P2016 战略游戏/BZOJ0495. 树的最小点覆盖之战略游戏(贪心/树形DP) 伟大的拜线段树jjh 游戏
    DescriptionBob喜欢玩电脑游戏,特别是战略游戏。但是他经常无法找到快速玩过游戏的办法。现在他有个问题。他要建立一个古城堡,城堡中的路形成一棵树。他要在这棵树的结点上放置最少数目的士兵,使得这些士兵能了望到所有的路。注意,某个士兵在一个结点上时,与该结点相连的所有边将都可以被了望到。请你编一程序,给定一树,帮Bob计算出他需要放置最少的士兵.FormatInput第一行N,表示树中结点的
  • 2.1 项目运行环境习题集 AlfredZSGao
    例题1项目经理及其领导的项目管理团队必须遵守:A.项目指导委员会确定的项目治理框架B.公司董事会确定的公司治理框架C.公司CEO制定的公司运营规则D.公司各职能部门发布的行政规章解释:正确答案是A。项目管理必须在项目指导委员会确定的项目治理框架下开展,不得违反项目治理框架中的规定。B:公司治理框架主要针对日常运营。C:公司的运营规则可能对项目有一定的影响,但不一定是项目必须遵守的。D:部门行政规章
  • CF1404BTree Tag/ BZOJ0487. 树上追逐详解 伟大的拜线段树jjh 算法图论深度优先
    1.题目传送门:TreeTag-洛谷2.思路我们考虑什么情况下Alice可以获胜.如果≤da,则Alice可以一步就追上Bob.如果Alice处在一个能覆盖整棵树的点,即2da+1≥树的直径,那么Bob也无论走到哪里Alice都能追到,Alice获胜.其它情况下,Alice会一步一步逼近Bob,并一定能把Bob逼近某棵子树.如果当前Alice占据一个点,使Bob无论怎么走都还在Alice的控制范围
  • BZOJ0481. 树的重心之砍树Link Cut Centroids 伟大的拜线段树jjh 深度优先算法图论
    题目思路分类讨论。首先当树只有一个重心的时候,我们删掉最小的边再加上原边即可.再看有两个重心的情况.显然这棵树必定是类似这样的:即删掉A后,以B为根的子树是剩下的最大连通块,反之亦然.那就可以得到一个结论:删掉边(A,B)后,两棵树的大小相等.那我们只要使两棵树的大小不相等,且不使新的点成为重心即可.那就考虑直接从A树中取一位编号最小叶子节点,把这个节点与它父亲的边断开,连到B的直接儿子中编号最小
  • PHP,安卓,UI,java,linux视频教程合集 cocos2d-x小菜 javaUIPHPandroidlinux
    ╔-----------------------------------╗┆                           
  • 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。 bozch .net.net mvc
    在.net mvc5中,在执行某一操作的时候,出现了如下错误:       各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。 经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。 回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。  &
  • Java 对象大小的计算 e200702084 java
                              Java对象的大小 如何计算一个对象的大小呢?    
  • Mybatis Spring 171815164 mybatis
    ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); CustomerService userService = (CustomerService) ac.getBean("customerService"); Customer cust
  • JVM 不稳定参数 g21121 jvm
            -XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。        可以说“不稳定参数”
  • 用户自动登录网站 永夜-极光 用户
    1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码 2.思路:将用户的信息保存为cookie            每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
  • centos7 安装后失去win7的引导记录 程序员是怎么炼成的 操作系统
    1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ###   在后面添加    menuentry "Windows 7 (loader) (on /dev/sda1)" { 
  • Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载 aijuans oracle
    Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
  • JavaEE开源快速开发平台G4Studio_V3.2发布了 無為子 AOPoraclemysqljavaeeG4Studio
      我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。   访问G4Studio网站 http://www.g4it.org   G4Studio_V3.2版本变更日志 功能新增 (1).新增了系统右下角滑出提示窗口功能。 (2).新增了文件资源的Zip压缩和解压缩
  • Oracle常用的单行函数应用技巧总结 百合不是茶 日期函数转换函数(核心)数字函数通用函数(核心)字符函数
    单行函数;   字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心) 一:字符函数: .UPPER(字符串) 将字符串转为大写 .LOWER (字符串) 将字符串转为小写 .INITCAP(字符串) 将首字母大写 .LENGTH (字符串) 字符串的长度 .REPLACE(字符串,'A','_') 将字符串字符A转换成_
  • Mockito异常测试实例 bijian1013 java单元测试mockito
    Mockito异常测试实例: package com.bijian.study; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.junit.Assert; import org.junit.Test; import org.mockito.
  • GA与量子恒道统计 Bill_chen JavaScript浏览器百度Google防火墙
    前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:   为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同? 首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
  • 【Linux命令三】Top命令 bit1129 linux命令
    Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:     top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99 Tasks: 202 total, 4 running, 198 sl
  • spring四种依赖注入方式 白糖_ spring
      平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
  • angular.injector boyitech AngularJSAngularJS API
    angular.injector   描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入.   使用方法: angular.injector(modules, [strictDi])   参数详解: Param Type Details mod
  • java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待 bylijinnan Integer
    public class PC { /** * 题目:生产者-消费者。 * 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。 */ private static final Integer[] val=new Integer[10]; private static
  • 使用Struts2.2.1配置 Chen.H apachespringWebxmlstruts
    Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar struts2-core-2.2.1.jar struts2-sp
  • [职业与教育]青春之歌 comsci 教育
           每个人都有自己的青春之歌............但是我要说的却不是青春...        大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....   &nbs
  • oracle连接(join)中使用using关键字 daizj JOINoraclesqlusing
    在oracle连接(join)中使用using关键字 34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables. Evaluate the following SQL statement: SELECT oi.order_id, product_id, order_date FRO
  • NIO示例 daysinsun nio
    NIO服务端代码: public class NIOServer { private Selector selector; public void startServer(int port) throws IOException { ServerSocketChannel serverChannel = ServerSocketChannel.open(
  • C语言学习homework1 dcj3sjt126com chomework
    0、 课堂练习做完 1、使用sizeof计算出你所知道的所有的类型占用的空间。 int x; sizeof(x);   sizeof(int);   # include <stdio.h> int main(void) { int x1; char x2; double x3; float x4; printf(&quo
  • select in order by , mysql排序 dcj3sjt126com mysql
    If i select like this: SELECT id FROM users WHERE id IN(3,4,8,1); This by default will select users in this order 1,3,4,8, I would like to select them in the same order that i put IN() values so:
  • 页面校验-新建项目 fanxiaolong 页面校验
    $(document).ready( function() { var flag = true; $('#changeform').submit(function() { var projectScValNull = true; var s =""; var parent_id = $("#parent_id").v
  • Ehcache(02)——ehcache.xml简介 234390216 ehcacheehcache.xml简介
    ehcache.xml简介          ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
  • junit 4.11中三个新功能 jackyrong java
    junit 4.11中两个新增的功能,首先是注解中可以参数化,比如 import static org.junit.Assert.assertEquals; import java.util.Arrays; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runn
  • 国外程序员爱用苹果Mac电脑的10大理由 php教程分享 windowsPHPunixMicrosoftperl
    Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因: 1、Mac OS X 是基于 Unix 的 这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
  • 位运算、异或的实际应用 wenjinglian 位运算
    一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。       二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。       三. 位操作与空间压缩,针对筛素数进行空间压缩。    &n
  • weblogic部署项目出现的一些问题(持续补充中……) Everyday都不同 weblogic部署失败
    好吧,weblogic的问题确实……   问题一: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
  • tomcat7性能调优(01) toknowme tomcat7
        Tomcat优化: 1、最大连接数最大线程等设置 <Connector port="8082" protocol="HTTP/1.1"                useBodyEncodingForURI="t
  • PO VO DAO DTO BO TO概念与区别 xp9802 javaDAO设计模式bean领域模型
    O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。 它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持