Ranges P93780


Statement
 

pdf   zip

html

Els ranges de Python són seqüències de nombres enters. N’hi ha tres versions:

  • range(n): Si n > 0, és [0, …, n − 1]; altrament, és una seqüència buida.
  • range(a, b): Si b > a, és [a, …, b − 1]; altrament, és una seqüència buida.
  • range(a, b, d): És [a, a + d, a + 2d, …, a + jd], on j ≥ 0 és el valor màxim que fa que a + jd < b, si d > 0, o que fa que a + jd > b, si d < 0. Si tal valor no existeix, és una seqüència buida.

Com exemples, range(3) = [0, 1, 2], range(−2, 2) = [−2, −1, 0, 1], range(7, 15, 4) = [7, 11], range(−7, −15, −4) = [−7, −11], range(−15, −7, −4) = [], range(8, 8, 4) = [].

Donat un enter x i un range de Python, digueu si x pertany al range.

Entrada

L’entrada consisteix en diversos casos, cadascun en una línia. Cada cas comença amb dos enters x i k, amb 1 ≤ k ≤ 3, seguits de k enters y1, …, yk. Tots els valors x, y1, …, yk estan entre −108 i 108. Cap y3 és igual a 0.

Sortida

Per a cada cas, digueu si x pertany a range(y1, …, yk).

Pista

Recordeu que en C++ l’operador % té un comportament “estrany” amb nombres negatius.

Public test cases
  • Input

    2 1 4
    2 1 1
    6 2 3 6
    3 2 2 4
    1 2 -1 1
    0 3 0 6 2
    2 3 1 6 2
    2 3 6 1 2
    2 3 6 1 -2
    2 3 6 2 -2
    2 3 -4 3 3
    -4 3 1 -5 -5
    

    Output

    SI
    NO
    NO
    SI
    NO
    SI
    NO
    NO
    SI
    NO
    SI
    SI
    
  • Information
    Author
    Víctor Martín
    Language
    Catalan
    Official solutions
    C++ Python
    User solutions
    C++ Python