Nu aveti permisiuni pentru a descarca fisierul grader_eval.cpp
Diferente pentru problema/strdup intre reviziile #4 si #3
Nu exista diferente intre titluri.
Diferente intre continut:
Mihai are un şir de caractere de lungime **N** format din litere mici şi mari ale alfabetului Englez şi cifre. Acesta definieşte un substring (e.g. caractere aflate pe poziţii consecutive) ca fiind duplicat, dacă substring-ul apare de cel putin 2 ori in şirul iniţial, la poziţii diferite. Mai mult, Mihai defineşte valoarea unui şir de caractere astfel: probabilitatea ca alegând aleator un substring nevid, acesta să fie duplicat. Să se găsească valoarea unui şir de caractere dat. Rezultatul se va afişa sub forma unei fracţii **ireductibile**.
Când Mihai alege aleator un substring nevid acesta procedează astfel: alege 2 poziţii (start, end) aleator din mulţimea <tex>{(i, j) | 1 <= i <= j <= N}</tex>
h2. Date de intrare Fişierul de intrare $strdup.in$ conţine pe prima linie numărul de teste **T**. Pe următoarele **T** linii se va găsii câte un şir de caractere format din litere mici şi mari + cifre.
În fişierul de ieşire $strdup.out$ se vor scrie **T** fracţii pe câte un rând, sub forma <numărător>/<numitor> (fără alte spaţii suplimentare), reprezentând probabilitatea ca alegând aleator un substring nevid, acesta să fie duplicat.
h2. Restricţii şi precizări * $ 1 ≤ T ≤ 5 $ * $ 1 ≤ N ≤ 1500 $ * Când Mihai alege aleator un substring nevid acesta procedează astfel:
h2. Restricţii * $... ≤ ... ≤ ...$
h2. Exemplu