SaseG

Time limit: 0.2s
Memory limit: 128MB
Input:
Output:

Plictisit de filantropie și produs cipuri, William Poartă ș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 știe pentru fiecare om starea sa finală (infectat sau neinfectat), însă nu știe care dintre oameni au fost infectați inițial, și care au fost infectați de la alte persoane. Pe lângă aceasta, el a aflat de la prietenul său Marcel Zahăr ș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 și pe celălalt (dacă acesta nu era deja infectat).

Acum William își pune următoarele întrebări:

  1. Pentru fiecare om, poate acesta să fie unul dintre cei infectați inițial?
  2. Pentru fiecare om, poate acesta să fie unul dintre cei neinfectați inițial?

Date de intrare

Pe prima linie se găsește un număr întreg C, reprezentând numărul cerinț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 și 1) separate prin spaț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 și N) reprezentând cele 2 persoane care se întâlnesc.

Date de ieșire

Se va afișa o singură linie conținând N cifre binare neseparate prin spații, reprezentând răspunsul pentru respectivul test.

Dacă C = 1, se rezolvă prima cerință, iar al i-lea caracter va fi 1 dacă și numai dacă există un scenariu inițial în care persoana i este infectată care duce la scenariul final dat, altfel va fi 0.

Dacă C = 2, se rezolvă a doua cerință, iar al i-lea caracter va fi 1 dacă și numai dacă există un scenariu inițial în care persoana i este neinfectată care duce la scenariul final dat, altfel va fi 0.

Restricții și precizări

  • 1 ≤ C ≤ 2
  • 1 ≤ N ≤ 100 000
  • 0 ≤ M ≤ 100 000
  • Se garantează că pentru fiecare test există un scenariu posibil inițial care să ducă la scenariul final.
  • Persoanele nu se pot infecta spontan. Acestea pot fi infectate la final doar dacă au fost infectate iniț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 aceeași stare finală (toate sunt infectate sau toate sunt neinfectate).

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

1
6 5
1 1 0 0 1 1
4 3
3 6
1 2
5 6
3 4

stdout

110010

stdin

2
6 5
1 1 0 0 1 1
4 3
3 6
1 2
5 6
3 4

stdout

111101

Explicații

Considerăm următoarele două scenarii inițiale: 010010, 100010. Se poate observa ușor că ambele scenarii duc la starea finală 110011 în urma întâlnirilor.

Pentru persoanele 1, 2 și 5 există scenarii în care acestea sunt infectate inițial, și se poate demonstra că pentru niciuna dintre persoanele 3, 4 și 6 nu există vreun scenariu inițial în care acestea să fie infectate.

Pentru persoanele 1, 2, 3, 4 și 6 există scenarii în care acestea sunt neinfectate inițial, și se poate demonstra că pentru persoana 5 nu există vreun scenariu inițial în care acesta să fie neinfectată.

Problem info

ID: 64

Editor: liviu

Author:

Source: ONI 2021 XI-XII: Problema 1

Tags:

ONI 2021 XI-XII

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