#L0801. 幂次计算

幂次计算

题目描述

小明在学习编程时遇到了一个有趣的任务:给定两个正整数 aabb,计算 aba^b 的值。

aba^b 表示 bbaa 相乘,例如 23=2×2×2=82^3 = 2 \times 2 \times 2 = 8

小明很快写出了程序,但他发现自己使用的变量只能存储有限范围的整数。在大多数机器上,整型能表示的最大数为 23112^{31} - 1,一旦结果超过这个范围就会出错。

为了安全起见,小明希望你在 aba^b 的值超过 10910^9 时输出 1-1 作为警示,否则输出 aba^b 的准确值。

请你帮小明完成这个程序。

输入格式

输入共一行,两个正整数 aabb

输出格式

输出共一行,如果 aba^b 的值不超过 10910^9,则输出 aba^b 的值,否则输出 1-1

样例

10 9
1000000000
23333 66666
-1

提示

对于 10%10\% 的数据,保证 b=1b = 1

对于 30%30\% 的数据,保证 b2b \leq 2

对于 60%60\% 的数据,保证 b30b \leq 30ab1018a^b \leq {10}^{18}

对于 100%100\% 的数据,保证 1a,b1091 \leq a, b \leq {10}^9

难度 入门
通过率
尝试 0
已通过 0
ID
1529
类型
传统题
Time Limit
500ms
Memory Limit
128MiB
上传者