Ranges P93780


Statement
 

pdf   zip

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

  • range(n)\text{range}(n): Si n>0n > 0, és [0,,n1][0, \ldots, n - 1]; altrament, és una seqüència buida.

  • range(a,b)\text{range}(a, b): Si b>ab > a, és [a,,b1][a, \ldots, b - 1]; altrament, és una seqüència buida.

  • range(a,b,d)\text{range}(a, b, d): És [a,a+d,a+2d,,a+jd][a, a + d, a + 2d, \ldots, a + jd], on j0j \ge 0 és el valor màxim que fa que a+jd<ba + jd < b, si d>0d > 0, o que fa que a+jd>ba + jd > b, si d<0d < 0. Si tal valor no existeix, és una seqüència buida.

Com exemples, range(3)=[0,1,2]\text{range}(3) = [0, 1, 2], range(2,2)=[2,1,0,1]\text{range}(-2, 2) = [-2, -1, 0, 1], range(7,15,4)=[7,11]\text{range}(7, 15, 4) = [7, 11], range(7,15,4)=[7,11]\text{range}(-7, -15, -4) = [-7, -11], range(15,7,4)=[]\text{range}(-15, -7, -4) = [], range(8,8,4)=[]\text{range}(8, 8, 4) = [].

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

Entrada

L’entrada consisteix en diversos casos, cadascun en una línia. Cada cas comença amb dos enters xx i kk, amb 1k31 \le k \le 3, seguits de kk enters y1,,yky_1, \ldots, y_k. Tots els valors x,y1,,ykx, y_1, \ldots, y_k estan entre 108-10^8 i 10810^8. Cap y3y_3 és igual a 0.

Sortida

Per a cada cas, digueu si xx pertany a range(y1,,yk)\text{range}(y_1, \ldots, y_k).

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