Sunteți pe pagina 1din 3

Olimpiada Societăt, ii pentru Excelent, ă s, i Performant, ă ı̂n Informatică

Etapa Nat, ională, 7 aprilie 2021


Clasele XI-XII

Problema SaseG
Fis, ier de intrare: standard input
Fis, ier de iesire: standard output

Plictisit de filantropie s, i produs cipuri, William Poartă s, i-a găsit o nouă pasiune: anchetele epidemiologice.
Astfel, el s-a gândit să cerceteze răspândirea unui virus din trecut asupra omenirii, formată din N
persoane.
William s, tie pentru fiecare om starea sa finală (infectat sau neinfectat), ı̂nsă nu s, tie care dintre oameni au
fost infectat, i init, ial, s, i care au fost infectat, i de la alte persoane. Pe langă aceasta, el a aflat de la prietenul
său Marcel Zahăr s, i o serie de ı̂ntâlniri (ı̂n ordine cronologică) ce au avut loc ı̂ntre câte 2 persoane prin
care virusul s-a răspândit, ı̂n următorul fel: dacă vreunul dintre cei doi vine la ı̂ntâlnire infectat, atunci
acesta ı̂l va infecta s, i pe celălalt (dacă acesta nu era deja infectat).
Acum William ı̂s, i pune următoarele ı̂ntrebări:
1. Pentru fiecare om, poate acesta să fie unul dintre cei infectat, i init, ial?
2. Pentru fiecare om, poate acesta să fie unul dintre cei neinfectat, i init, ial?

Date de intrare
Pe prima linie se găses, te un număr ı̂ntreg C, reprezentând numărul cerint, ei de rezolvat.
Pe cea de-a doua linie se găsesc două numere ı̂ntregi N, M , reprezentând numărul de persoane, respectiv
numărul de ı̂ntâlniri care au loc.
Pe cea de-a treia linie se găsesc N numere (având valori ı̂ntre 0 s, i 1) separate prin spat, ii, reprezentând
pentru fiecare om starea sa finală (0 - neinfectat, 1 - infectat).
Următoarele M linii reprezintă fiecare câte o ı̂ntâlnire (ı̂n ordine cronologică), având 2 numere ı̂ntregi
distincte (ı̂ntre 1 s, i N ) reprezentând cele 2 persoane care se ı̂ntâlnesc.

Date de ies, ire


Se va afis, a o singură linie cont, inând N cifre binare neseparate prin spat, ii, reprezentând răspunsul pentru
respectivul test.
Dacă C = 1, se rezolvă prima cerint, ă, iar al i-lea caracter va fi 1 dacă s, i numai dacă există un scenariu
init, ial ı̂n care persoana i este infectată care duce la scenariul final dat, altfel va fi 0.
Dacă C = 2, se rezolvă a doua cerint, ă, iar al i-lea caracter va fi 1 dacă s, i numai dacă există un scenariu
init, ial ı̂n care persoana i este neinfectată care duce la scenariul final dat, altfel va fi 0.

Restrict, ii s, i precizări
• 1≤C≤2
• 1 ≤ N ≤ 100 000
• 0 ≤ M ≤ 100 000
• Se garantează că pentru fiecare test există un scenariu posibil init, ial care să ducă la scenariul final.
• Persoanele nu se pot infecta spontan. Acestea pot fi infectate la final doar dacă au fost infectate
init, ial sau au fost infectate de o altă persoană ı̂n urma unei ı̂ntâlniri.

Subtask 1 (3 puncte)
• C=1
• Se garantează că toate persoanele au aceeas, i stare finală (toate sunt infectate sau toate sunt nein-
fectate).

1
Olimpiada Societăt, ii pentru Excelent, ă s, i Performant, ă ı̂n Informatică
Etapa Nat, ională, 7 aprilie 2021
Clasele XI-XII

Subtask 2 (8 puncte)
• C = 1, 1 ≤ N ≤ 18, 0 ≤ M ≤ 100

Subtask 3 (9 puncte)
• C = 1, 1 ≤ N ≤ 100, 0 ≤ M ≤ 100
• Numărul de persoane infectate ı̂n final ≤ 18

Subtask 4 (27 puncte)


• C = 1, 1 ≤ N ≤ 5 000, 0 ≤ M ≤ 5 000

Subtask 5 (28 puncte)


• C = 1, 1 ≤ N ≤ 100 000, 0 ≤ M ≤ 100 000

Subtask 6 (3 puncte)
• C = 2, 1 ≤ N ≤ 18, 0 ≤ M ≤ 100

Subtask 7 (4 puncte)
• C = 2, 1 ≤ N ≤ 100, 0 ≤ M ≤ 100
• Numărul de persoane infectate ı̂n final ≤ 18

Subtask 8 (7 puncte)
• C = 2, 1 ≤ N ≤ 5 000, 0 ≤ M ≤ 5 000

Subtask 9 (11 puncte)


• C = 2, 1 ≤ N ≤ 100 000, 0 ≤ M ≤ 100 000

Exemple
stdin stdout
1 110010
6 5
1 1 0 0 1 1
4 3
3 6
1 2
5 6
3 4
2 111101
6 5
1 1 0 0 1 1
4 3
3 6
1 2
5 6
3 4

2
Olimpiada Societăt, ii pentru Excelent, ă s, i Performant, ă ı̂n Informatică
Etapa Nat, ională, 7 aprilie 2021
Clasele XI-XII

Explicat, ii
Considerăm următoarele două scenarii init, iale: 010010, 100010. Se poate observa us, or că ambele scenarii
duc la starea finală 110011 ı̂n urma ı̂ntâlnirilor.
Pentru persoanele 1, 2 s, i 5 există scenarii ı̂n care acestea sunt infectate init, ial, s, i se poate demonstra că
pentru niciuna dintre persoanele 3, 4 s, i 6 nu există vreun scenariu init, ial ı̂n care acestea să fie infectate.
Pentru persoanele 1, 2, 3, 4 s, i 6 există scenarii ı̂n care acestea sunt neinfectate init, ial, s, i se poate demonstra
că pentru persoana 5 nu există vreun scenariu init, ial ı̂n care acesta să fie neinfectată.

S-ar putea să vă placă și