3326 - Turneu1

From Bitnami MediaWiki

Cerință[edit | edit source]

Impresarul unei formații de muzică trebuie să primească oferte de spectacole și eventual anulări de spectacole din diferite orașe. Orașele sunt codificate prin numerele 1 , 2 ,.., n (1 ≤ n ≤ 20) și fiecare oraș poate organiza cel mult un spectacol. Impresarul ține legătura cu organizatorii de spectacole din aceste orașe și actualizează în permanență datele obținute. Prin fax el primește m (m ≤ 100) mesaje, care pot fi de unul din cele două tipuri:

D

nr

sau

N

nr

Cu semnificațiile: pentru primul mesaj se dorește organizarea unui concert în orașul nr, iar pentru a-l doilea mesaj se dorește anularea spectacolului din orașul nr . Un mesaj este format din exact două linii.

Se cere:

a) Să se afișeze orașele în care va concerta formația de muzică (pe aceeași linie cu un spațiu între ele).

b) Să se afișeze orașul (sau orașele dacă sunt mai multe, pe aceeași linie cu un spațiu între ele) în care organizatorii sunt cei mai nedeciși (adică au anulat și propus organizarea de spectacol în orașul lor de cele mai multe ori).

c) Să se afișeze numărul de orașe care nu au trimis nici un mesaj impresarului.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul n m, cele m mesaje: un caracter care poate sa fie 'D' sau 'N' și un număr natural a.

Date de ieșire[edit | edit source]

Programul afișează pe prima linie orașele în care va concerta formația, pe următoarea linie orașele în care organizatorii sunt cei mai indeciși și pe ultima linie numărul de orașe care nu au trimis nici un mesaj impresarului.

Restricții și precizări[edit | edit source]

  • 1 ≤ n ≤ 20
  • 1 ≤ m ≤ 100

Exemplu:[edit | edit source]

Intrare

5 6
D
2
D
3
N
3
D
3
D
5
N
2

Ieșire

3 5
3
2

Încărcare soluție[edit | edit source]

Lipește codul aici[edit | edit source]

<syntaxhighlight lang="python" line="1"> f = [0]*101 f1 = [0]*101

def main():

   n, m = map(int, input().split())
   for i in range(1, m+1):
       c, a = input().split()
       a = int(a)
       f1[a] += 1
       if c == 'D':
           f[a] += 1
       else:
           f[a] -= 1
   maxx = 0
   cnt1 = 0
   for i in range(1, n+1):
       if f1[i] == 0:
           cnt1 += 1
       if f[i] > 0:
           print(i, end=' ')
       if f1[i] > maxx:
           maxx = f1[i]
   print()
   for i in range(1, n+1):
       if f1[i] == maxx:
           print(i, end=' ')
   print()
   print(cnt1)

if __name__ == "__main__":

   main()

</syntaxhighlight>