3326 - Turneu1

De la Universitas MediaWiki

Cerință

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

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

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

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

Exemplu:

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

Lipește codul aici

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()