





import math_equivalence  # From: git+https://github.com/hendrycks/math.git

import datasets


lowerCAmelCase_						   =    """\
@article{hendrycksmath2021,
  title={Measuring Mathematical Problem Solving With the MATH Dataset},
  author={Dan Hendrycks
    and Collin Burns
    and Saurav Kadavath
    and Akul Arora
    and Steven Basart
    and Eric Tang
    and Dawn Song
    and Jacob Steinhardt},
  journal={arXiv preprint arXiv:2103.03874},
  year={2021}
}
"""


lowerCAmelCase_						   =    """\
This metric is used to assess performance on the Mathematics Aptitude Test of Heuristics (MATH) dataset.
It first canonicalizes the inputs (e.g., converting \"1/2\" to \"\\frac{1}{2}\") and then computes accuracy.
"""


lowerCAmelCase_						   =    r"""
Calculates accuracy after canonicalizing inputs.

Args:
    predictions: list of predictions to score. Each prediction
        is a string that contains natural language and LaTex.
    references: list of reference for each prediction. Each
        reference is a string that contains natural language
        and LaTex.
Returns:
    accuracy: accuracy after canonicalizing inputs
        (e.g., converting \"1/2\" to \"\\frac{1}{2}\")

Examples:
    >>> metric = datasets.load_metric(\"competition_math\")
    >>> results = metric.compute(references=[\"\\frac{1}{2}\"], predictions=[\"1/2\"])
    >>> print(results)
    {'accuracy': 1.0}
"""



@datasets.utils.file_utils.add_end_docstrings(_DESCRIPTION							,    _KWARGS_DESCRIPTION							)
class        _lowerCAmelCase    (			datasets.Metric							):


  '''simple docstring'''







  def UpperCamelCase_ (      self      :					Optional[Any]							):


    '''simple docstring'''





    return datasets.MetricInfo(
        description=_DESCRIPTION      ,				citation=_CITATION      ,				inputs_description=_KWARGS_DESCRIPTION      ,				features=datasets.Features(
            {
                'predictions': datasets.Value('string'							),
                'references': datasets.Value('string'							),
            }							)      ,				homepage='https://github.com/hendrycks/math'      ,				codebase_urls=['https://github.com/hendrycks/math']      ,				)







  def UpperCamelCase_ (      self      :					List[str]      ,				UpperCamelCase      :					List[str]      ,				UpperCamelCase      :					Optional[int]							):


    '''simple docstring'''





    _snake_case   :				Optional[Any]														=	0.0
    for i, j in zip(UpperCamelCase      ,				UpperCamelCase							):
      n_correct += 1.0 if math_equivalence.is_equiv(UpperCamelCase      ,				UpperCamelCase							) else 0.0
    _snake_case   :				Dict														=	n_correct / len(UpperCamelCase							)
    return {
        "accuracy": accuracy,
    }








from functools import reduce

lowerCAmelCase_						   =    (
    """73167176531330624919225119674426574742355349194934"""
    """96983520312774506326239578318016984801869478851843"""
    """85861560789112949495459501737958331952853208805511"""
    """12540698747158523863050715693290963295227443043557"""
    """66896648950445244523161731856403098711121722383113"""
    """62229893423380308135336276614282806444486645238749"""
    """30358907296290491560440772390713810515859307960866"""
    """70172427121883998797908792274921901699720888093776"""
    """65727333001053367881220235421809751254540594752243"""
    """52584907711670556013604839586446706324415722155397"""
    """53697817977846174064955149290862569321978468622482"""
    """83972241375657056057490261407972968652414535100474"""
    """82166370484403199890008895243450658541227588666881"""
    """16427171479924442928230863465674813919123162824586"""
    """17866458359124566529476545682848912883142607690042"""
    """24219022671055626321111109370544217506941658960408"""
    """07198403850962455444362981230987879927244284909188"""
    """84580156166097919133875499200524063689912560717606"""
    """05886116467109405077541002256983155200055935729725"""
    """71636269561882670428252483600823257530420752963450"""
)


def     lowerCamelCase_	(      lowerCAmelCase:	str = N				)->		int:
  return max(
      # mypy cannot properly interpret reduce
      int(reduce(lambda lowerCAmelCase    ,							lowerCAmelCase				: str(int(lowerCAmelCase				) * int(lowerCAmelCase				)				)    ,							n[i : i + 13]				)				)
      for i in range(len(lowerCAmelCase				) - 12				)				)


if __name__ == "__main__":
      print(F"""{solution() = }""")




