Visitors to the Eötvös Loránd1 University of Sciences in Budapest are greeted by a perpetual book with leaves of water.

fontain
Visitors to the Eötvös Loránd University of Sciences in Budapest are greeted by a perpetual book with leaves of water.

Assignment

A reference to a number of consecutive pages from a book is usually noted as m–n, with $$m \in \mathbb{N}_0$$ the number of the first page and $$n \in \mathbb{N}_0$$ the number of the last page (with $$m < n$$). A reference to a single page with number $$m$$ is simply noted as m (so we never write m–m).

If the numbers $$m$$ and $$n$$ have the same number of digits, the notation is often abbreviated by removing the longest common prefix in the digits of $$m$$ and $$n$$ from $$n$$. For example, the notation 1234–1247 can be abbreviated to 1234–47 by removing the longest common prefix 12 from 1247. We can therefore easily recognize that m–n is an abbreviation, given that in this case $$m > n$$.

Your task is to write the following functions, that each take a reference to a number of consecutive pages from a book (str). This may either be a reference to a single page or to multiple pages, and in the latter case both the full notation or the abbreviated notation may be used.

Example

>>> pages('1234')
(1234, 1234)
>>> pages('1234-1247')
(1234, 1247)
>>> pages('1234-47')
(1234, 47)
>>> pages('99-103')
(99, 103)

>>> short('1234')
'1234'
>>> short('1234-1247')
'1234-47'
>>> short('1234-47')
'1234-47'
>>> short('99-103')
'99-103'

>>> long('1234')
'1234'
>>> long('1234-1247')
'1234-1247'
>>> long('1234-47')
'1234-1247'
>>> long('99-103')
'99-103'

>>> page_count('1234')
1
>>> page_count('1234-1247')
14
>>> page_count('1234-47')
14
>>> page_count('99-103')
5

Epilogue: stairs of knowledge

trappen van kennis
Door de beschildering lijkt deze trap naar de bibliotheek aan de Universiteit van Balamand (Libanon) op een stapel klassieke teksten.

This staircase near the library at Lebanon's University of Balamand2 is painted to resemble a stack of classic texts:

This puts them (almost) in chronological order.