Aminoàcids alienígenes T50529


Statement
 

pdf   zip

thehtml

Els científics de l’Observatori d’Intel·ligència Còsmica i Astrobiologia Transgalàctica (també conegut com OICAT) han obtingut mostres d’un meteorit que es pensa que podria contenir vida extraterrestre. En Roger, encarregat d’analitzar-les, ha descobert restes de cadenes amb una estructura semblant a l’ADN humà.

Mentre que l’ADN humà conté quatre bases diferents, representades amb les lletres ‘a’, ‘c’, ‘g’ i ‘t’, aquest ADN extraterrestre conté fins a 26 bases, que en Roger ha representat amb les lletres minúscules. De manera similar a l’ADN humà, que es divideix en triplets de bases consecutives (cadascun codificant un aminoàcid), en Roger intueix que la seqüència d’ADN extraterrestre es pot dividir en grups de lletres consecutives, cadascun corresponent a un aminoàcid alienígena.

Malauradament, no es coneix quins poden ser aquests aminoàcids. No obstant això, la seva companya de recerca, la Laia, ha descobert i ha anotat a la seva llibreta diversos parells de lletres que defineixen com comencen i acaben. Direm que una subparaula s = s1  …  sm és un aminoàcid vàlid si el parell (s1, sm) es troba a la llibreta de la Laia. Una divisió d’una paraula en subparaules és vàlida si cada subparaula és un aminoàcid vàlid.

Per exemple, si la llibreta conté els parells (‘a’, ‘c’), (‘b’, ‘g’), (‘b’, ‘b’) i (‘b’, ‘f’), aleshores les úniques maneres vàlides de dividir la paraula “accbbbkppfcbdrtg” són:


  acc-bbbkppfcbdrtgacc-b-bbkppfcbdrtgacc-bb-bkppfcbdrtg

      acc-b-b-bkppfcbdrtgaccbbbkppfc-bdrtg


En canvi, la separació acc-bbbkppfcb-drtg seria invàlida, perquè el parell (‘d’, ‘g’) no es troba a la llibreta.

Podeu calcular el nombre de maneres de dividir una paraula donada?

Entrada

L’entrada consisteix en diversos casos, cadascun amb una paraula amb lletres minúscules, seguida del nombre de parells p ≥ 1, seguit dels p parells, tots diferents. Podeu suposar que la paraula té entre 1 i 105 lletres.

Sortida

Per a cada cas, escriviu el nombre de maneres de dividir la cadena d’ADN extraterrestre en aminoàcids vàlids. Com que la resposta pot ser molt gran, feu els càlculs mòdul 108 + 7.

Puntuació

  • Cas A:  ‍40% Punts ‍

    Casos on la paraula no té més de 100 lletres, com els de l’exemple d’entrada.

  • Cas B:  ‍60% Punts ‍

    Casos de tot tipus.

Public test cases
  • Input

    accbbbkppfcbdrtg
    4 ac bg bb bf
    ab
    1 ba
    zzzzzzzzzz
    1 zz
    aaaaaaaaaaaaaaaaaaaaaaaaaaaa
    1 aa
    

    Output

    5
    0
    512
    34217721
    
  • Information
    Author
    Eloi Pagès
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++