Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2017-05-28 03:52:40.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:density.in, density.outSursăACM-ICPC Faza Nationala 2017
AutorMihai CalanceaAdăugată deklamathixMihai Calancea klamathix
Timp execuţie pe test3 secLimită de memorie131072 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Density

Ai un prieten care ia momentan un curs de Automate Finite si vorbeste intr-una despre asta. Multa vreme ai crezut ca nu e un curs foarte legitim, fiindca prietenul tau vorbea despre automate care "tolereaza" cuvinte, pe cand stim cu totii ca formularea consacrata este "accepta". Astazi insa, prietenul tau ti-a definit mai exact "toleranta" si, ce-i drept, e relativ interesant.

Spunem ca un Auotomat Finit Determinist (prescurtat AFD) tolereaza stringul X daca si numai daca exista un string Y astfel incat X este subsir de-al lui Y, iar Y este acceptat de AFD in sensul clasic.

Dandu-ti-se un AFD esti curios cat de densa este multimea stringurilor tolerate de A relativ la multimea tuturor stringurilor peste alfabetul automatului. Mai formal, esti curios daca limita raportului dintre numarul de stringuri tolerate si numarul total de stringuri posibile atunci cand lungimea acestora tinde la infinit este strict pozitiva.

Date de intrare

Fişierul de intrare density.in va contine pe prima sa linie numarul de teste, T. Structura unui test este urmatoarea: Pe prima linie se vor afla valorile N SIGMA F, reprezentand numarul de stari ale automatului, marimea alfabetului utilizat de catre automat, respectiv numarul de stari finale ale automatului. Urmeaza o linie cu F valori distincte din multimea {1, 2, .. N}, reprezentand multimea starilor finale ale automatului. Urmeaza apoi N linii, fiecare continand cate SIGMA valori din multimea {1, 2, .. N}. Al j-lea element de pe linia i indica destinatia tranzitiei asociate caracterului cu numarul j din starea i.

Date de ieşire

În fişierul de ieşire density.out se vor afla T linii, fiecare continand raspunsul pentru testul corespunzator. Daca limita descrisa in enunt este strict mai mare decat 0, raspunsul este "DA". Altfel, raspunsul este "NU".

Restricţii

  • 1 ≤ T ≤ 100
  • 1 ≤ N ≤ 10.000
  • 1 ≤ K ≤ 26
  • Starea de inceput este tot timpul starea cu numarul 1.

Exemplu

density.indensity.out
2
1 1 1
1
3 1 3
1 2
2
3
3
DA
NU

Explicaţie

Primul automat tolereaza orice sir format din primul si unicul caracter al alfabetului. Deci densitatea sa este 1.
In cazul celui de-al doilea automat, alfabetul este acelasi, insa automatul tolereaza doar sirurile de lungime mai mica sau egala cu 2. Este clar ca densitatea sa este egala cu 0

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?