#EP1007. 蛋语表达式

蛋语表达式

搬运自 https://www.luogu.com.cn/problem/T522254
虽然这个题目所有者是我,这个题目中还是注明了题目来源,也就是说,这题是双重搬运题搬运了两次的题目,数据是我造的。
还请注意,原帖解法和这个题目的解法不相同。

题目背景

原帖链接作者。

题目描述

蛋语只有这三个字母与数字:

E G Y

这里是一段蛋语:EG214YGEY1G4Y2

所有蛋语都有一个合格与不合格的评判标准,如下:

  1. 只含数字与字母 EGY
  2. 每一段连续字母组合不能超过两位,且不能是两个一样的字母。
  3. 每一段连续数字组合的开头不能为 00
  4. 最后一位与第一位不是字母

而当满足这些条件时,我们就需要计算其结果:

  • 所有的字母排列都可以成为一个符号。
  • 此处我们定义 E 为加号,G 为减号,Y 为乘号,任意两位组合为除号。
  • 所有数字与正常数相同。
  • 按照从左到右顺序计算,不考虑数学上面的运算优先级

输入格式

输入两行。

第一行是一个数,表示蛋语长度。 第二行一个字符串表示蛋语,保证其都是蛋语,只有不合格与合格之分。

输出格式

如果其不是合格蛋语,输出 NOT A EGGY这符合英语语法吗?),否则输出结果。

10
777E12G23Y
NOT A EGGY
9
777E12G23
766
777EG111Y23E114514
114675

说明/提示

样例解释

对于第一组样例,最后一位是字母“Y”,所以其不是合格蛋语。

对于第二组样例,转换为数学算式为:777+1223=766777+12-23=766,按照从左到右的顺序计算。

对于第三组样例,转换为数学算式为:777÷111×23+114514=114675777\div 111 \times 23+114514=114675,按照从左到右的顺序计算。

数据范围

捆绑测试。

定义蛋语的计算结果为 ansans 变量。

对于 60%60\% 的数据,1n,ans501 \le n,ans \le 50

对于 100%100\% 的数据,1n,ans10121 \le n,ans \le 10^{12}

更新情况

upd 10/05:更新了测试点 33 的问题,输出应该为 30(反正捆绑测试我也不怕你骗分)。

upd 2025/5/4 AND 2025/5/5:更新题面。

新增 55 组数据。