算式
题目描述 你发现了一个由𝑛𝑛 + 1个1组成的算式:1 𝑜𝑜𝑝𝑝1 1 𝑜𝑜𝑝𝑝2 1 … 1 𝑜𝑜𝑝𝑝𝑛𝑛 1,其中𝑜𝑜𝑝𝑝𝑖𝑖 可能是+ 或者?。
你想把所有的?换成+或者^(二进制的异或运算)。这里加法运算的优先级比异或更 高。
问这个算式的最大可能的结果是多少,同时有多少种替换的方法能得到最大的结果。 由于答案可能很大,输出对109 + 7取模的结果。
注意:内存为 128MB。
输入格式 一行一个长度为𝑛𝑛的字符串,字符串由?+构成。
输出格式 输出两个数,表示最大可能的结果,和替换的方案数。
样例输入 1 ???+???
样例输出 1 15 66
样例输入输出 2 见下发文件。
数据规模 共 10 个测试点。
测试点1,2满足𝑛𝑛 ≤ 24 − 2 。
测试点3,4满足𝑛𝑛 ≤ 210 − 2。
测试点5,6满足𝑛𝑛 ≤ 215 − 2。
对于所有数据,满足1 ≤ 𝑛𝑛 ≤ 222 − 2。