lacate

Time limit: 0.1s Memory limit: 64MB Input: lacate.in Output: lacate.out

În vistieria cetății se află NN lacăte așezate în linie, numerotate de la 11 la NN, fiecare având inscripționat un cod numeric în baza 1010. Definim amprenta unui cod ca fiind un număr format din două cifre, XY\overline{XY}, unde XX este cea mai mare cifră a codului, iar YY este cifra cea mai mică. De exemplu pentru codul 327003327003 amprenta este 7070.

Două lacăte din șir situate pe pozițiile ii și jj formează o pereche echilibrată dacă i<ji < j și codurile lor Cod[i]Cod[i] și Cod[j]Cod[j] au aceleași cifre, indiferent de ordinea și numărul de apariții al acestora. De exemplu, dacă primul lacăt din șir și al treilea au codurile Cod[1]=1221Cod[1] = 1221 și Cod[3]=211Cod[3] = 211, atunci perechea (Cod[1]Cod[1], Cod[3]Cod[3]) este echilibrată deoarece ambele sunt formate exact din cifrele {1,2}\{1, 2\} și 1<31 < 3.

Cerințe

Scrieți un program care rezolvă următoarele cerințe, cerința de rezolvat fiind dată de C{1,2,3}C \in \{1, 2, 3\}:

C=1C=1. Determinați câte lacăte au amprenta formată din două cifre identice.

C=2C=2. Considerăm că din fiecare cod trebuie să eliminăm exact o apariție a unei cifre, astfel încât suma amprentelor rezultate să fie maximă. Determinați această sumă.

C=3C=3. Determinați numărul total de perechi echilibrate din șirul inițial al celor NN lacăte.

Date de intrare

Fișierul de intrare lacate.in conține pe prima linie numărul CC reprezentând cerința care trebuie rezolvată. Pe a doua linie, numărul NN. Pe a treia linie, în ordine cele NN coduri, numere naturale separate prin spații.

Date de ieșire

Fișierul de ieșire lacate.out va conține pe prima linie un singur număr reprezentând răspunsul la cerința rezolvată.

Restricții și precizări

  • 1N50 0001 \le N \le 50 \ 000;
  • 11 \le Codul oricărui lacăt din șir 100 000\le 100 \ 000
  • Pentru C=2C = 2, codul oricărui lacăt din șir 10\ge 10
# Punctaj Restricții
1 21 C=1C = 1
2 21 C=2C = 2 și codurile lacătelor vor avea exact două cifre
3 28 C=2C = 2 și există coduri cu cel puțin trei cifre
4 12 C=3C = 3 și 2N10002 \le N \le 1000
5 18 C=3C = 3 și 1000<N50 0001000 < N \le 50 \ 000

Exemplul 1

lacate.in

1
8
132 213 34 334 4343 2 1223 666

lacate.out

2

Explicație

Amprentele lacătelor sunt 31 31 43 43 43 22 31 6631 \ 31 \ 43 \ 43 \ 43 \ 22 \ 31 \ 66 și avem 22 amprente cu cifre identice 2222 și 6666.

Exemplul 2

lacate.in

2
8
132 213 34 334 4343 20 1223 666

lacate.out

314

Explicație

Codurile obținute după eliminarea câte unei cifre vor fi: 32 23 4 34 443 2 223 6632 \ 23 \ 4 \ 34 \ 443 \ 2 \ 223 \ 66, generând amprentele: 32 32 44 43 43 22 32 6632 \ 32 \ 44 \ 43 \ 43 \ 22 \ 32 \ 66, cu suma 314314.

Exemplul 3

lacate.in

3
8
132 213 34 334 4343 2 1223 666

lacate.out

6

Explicație

Perechile echilibrate sunt (132,213)(132, 213), (132,1223)(132, 1223), (213,1223)(213, 1223), (34,334)(34, 334), (34,4343)(34, 4343), (334,4343)(334, 4343).

Log in or sign up to be able to send submissions!