Pagini recente » Atasamentele paginii Profil cryv3r | Atasamentele paginii Profil CalinHangu | Atasamentele paginii Profil Spam97 | Istoria paginii problema/nfa | Diferente pentru problema/fifty intre reviziile 5 si 6
Diferente pentru
problema/fifty intre reviziile
#5 si
#6
Nu exista diferente intre titluri.
Diferente intre continut:
== include(page="template/taskheader" task_id="fifty") ==
În vremurile de graţie ale TopCoder-ului majoritatea restricţiilor din probleme erau egale cu $50$. Din cauza asta, propunătorii găseau uneori metode neortodoxe de a stoca multe query-uri în input de dimensiuni mici. Spre exemplu, să presupunem că dorim să producem multe query-uri care implică două numere naturale $X$ şi $Y$. O soluţie este să oferim un şir de caractere $'a'$ şi $'b'$ şi să considerăm că fiecare subsecvenţă a sa reprezintă un query în care $X$ este egal cu numărul de $'a'$-uri din subsecvenţă, iar $Y$ este egal cu numărul de 'b'-uri din subsecvenţă.
În vremurile de graţie ale TopCoder-ului majoritatea restricţiilor din probleme erau egale cu $50$. Din cauza asta, propunătorii găseau uneori metode neortodoxe de a cere rezolvarea a multe query-uri prin input de dimensiuni mici. Spre exemplu, să presupunem că dorim să producem multe query-uri care implică două numere naturale $X$ şi $Y$. O soluţie este să oferim un şir de caractere $'a'$ şi $'b'$ şi să considerăm că fiecare subsecvenţă a sa reprezintă un query în care $X$ este egal cu numărul de $'a'$-uri din subsecvenţă, iar $Y$ este egal cu numărul de 'b'-uri din subsecvenţă. Astfel, putem "stoca" $O(N ^ 2)$ query-uri în spaţiu $O(N)$.
În această problemă vi se dau $M$ query-uri care trebuie neaparat să "apară" în input, iar voi trebuie să produceţi un şir de caractere de lungime exact $N$ care să codeze aceste query-uri.
Spre exemplu, dacă $N = 7, M = 2$ iar cele două query-uri care trebuie incluse sunt $X = 4, Y = 2$, respectiv $X = 3, Y = 3$, atunci şirul "abaabab" este un răspuns valid, deoarece conţine subsecvenţele $"abaaba"$ şi $"baabab"$ care codifică aceste două query-uri.
h2. Date de intrare
Fişierul de intrare $fifty.in$ ...
Fişierul de intrare $fifty.in$ va conţine pe prima sa linie numărul $T$, semnificând numărul de teste. Structura unui test este următoarea: pe prima linie se vor afla numerele $N$ şi $M$. Următoarele $M$ linii vor conţine câte o pereche de numere $X Y$, semnificând valorile query-ului respectiv.
h2. Date de ieşire
În fişierul de ieşire $fifty.out$ ...
În fişierul de ieşire $fifty.out$ va conţine exact $T$ linii, fiecare conţinând un şir de caractere $'a'$ şi $'b'$ sau valoarea $-1$, în caz că nu există soluţie.
h2. Restricţii
* $1 ≤ N ≤ 50$
* $1 ≤ M ≤ 500$
* Se acceptă orice soluţie corectă.
* Dacă nu există soluţie, se va afişa $-1$.
h2. Exemplu
table(example). |_. fifty.in |_. fifty.out |
| 1
5 1
2 1
| ababb
4 2
3 3
| abaabab
|
== include(page="template/taskfooter" task_id="fifty") ==
Nu exista diferente intre securitate.
Topicul de forum nu a fost schimbat.