Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2012-08-26 20:06:04.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:atena.in, atena.outSursăTabăra ICHB 2012, Ziua 2, Grupa 2
AutorDan Constantin SpatarelAdăugată despatarelDan-Constantin Spatarel spatarel
Timp execuţie pe test0.2 secLimită de memorie16384 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Atena

În Grecia antică, reţeaua stradală a oricărui oraş era formată din intersecţii legate prin drumuri bidirecţionale, construite în aşa fel încât din orice intersecţie să se poată ajunge în oricare altă intersecţie, direct sau indirect, trecând prin alte intersecţii. De asemenea, între oricare două intersecţii ale unui oraş existau cel mult un drum direct şi nu existau drumuri de la o intersecţie la ea însăşi.

Se ştie că în acele vremuri, reţeaua stradală a oraşului Atena avea N1 intersecţii, legate prin M1 drumuri bidirecţionale, în timp ce reţeaua stradală a oraşului Sparta avea N2 intersecţii, legate prin M2 drumuri bidirecţionale. Intersecţiile din Atena se consideră numerotate cu numere de la 1 la N1, în timp ce intersecţiile din Sparta se consideră numerotate cu numere de la N1 + 1 la N1 + N2.

Pericle, regele Atenei, a decis să afle în ce măsură reţeaua de străzi a Spartei este asemănătoare cu reţeaua de străzi a oraşului Atena. În acest scop, el i-a cerut unuia dintre matematicienii atenieni, Parmenide, să afle dacă reţeaua de străzi a Spartei este inclusă în reţeaua de străzi a Atenei.

Pericle consideră că reţeaua de străzi a Spartei este inclusă în reţeaua de străzi a Atenei dacă şi numai dacă există submulţimi disjuncte două câte două nevide A1, A2, ..., ANi ale mulţimii { 1, 2, ..., Ni } cu proprietatea că pentru orice drum între două intersecţii N1 + a şi N1 + b în Sparta există un drum între o intersecţie c şi o intersecţie d în Atena, cu c din Aa, d din Ab şi 1 <= a, b <= N2, 1 <= c, d <= N1.

Din păcate Parmenide a murit în timp ce încerca să ajungă la Congresul de Matematică Aplicată din Siracuza, aşa că sarcina lui v-a revenit vouă. Totuşi Parmenide a menţionat în treacăt înainte să plece că rezolvarea problemei se bazează în mod esenţial pe următoarele două proprietăţi ale reţelei stradale din Atena:

  • N1 ≥ 2 * M2;
  • Oricum am alege o intersecţie a din Atena, şi alte 3 intersecţii distincte b, c şi d legate prin drumuri de a, există un drum între b şi c, sau un drum intre c şi d, sau un drum între b şi d (pot exista chiar două dintre aceste drumuri, sau toate trei la un loc).

Scrieţi un program care determină dacă reţeaua stradală din Sparta este inclusă în reţeaua stradală din Atena, în sensul dat de Pericle. Dacă răspunsul este afirmativ, atunci programul trebuie să determine şi mulţimile A1, A2, ..., ANi.

Date de intrare

Fişierul de intrare atena.in are următoarea structură:

  • pe prima linie se află două numere naturale N1 şi M1, reprezentând numărul de intersecţii din Atena, respectiv numărul de drumuri bidirecţionale dintre ele;
  • pe liniile 2, ..., M1 + 1 sunt scrise două numere naturale separate printr-un spaţiu x y (1 ≤ x, y ≤ N1) cu semnificaţia că între intersecţia x din Atena şi intersecţia y din Atena exista drum;
  • pe linia M1 + 2 se află două numere naturale N2 şi M2, reprezentând numărul de intersecţii din Sparta, respectiv numărul de drumuri bidirecţionale dintre ele;
  • pe liniile M1 + 3, ..., M1 + M2 + 2 sunt scrise două numere naturale separate printr-un spaţiu x y (N1 + 1 ≤ x, y ≤ N1 + N2) cu semnificaţia că între intersecţia x din Sparta şi intersecţia y din Sparta exista drum.

Date de ieşire

În fişierul de ieşire atena.out se va găsi pe prima linie

Pe prima linie a fişierului atena.out se va găsi cuvântul DA dacă reţeaua stradală din Sparta este inclusă în reţeaua stradală din Atena sau NU dacă nu este inclusă.

Numai în cazul în care pe prima linie se află DA trebuie să urmeze N2 linii cu următoarea structură:

  • pe linia i + 1 (1 ≤ i ≤ N2) din fişierul atena.out se vor afla un întreg pi reprezentând numărul de elemente din mulţimea Ai, urmat de un spaţiu, şi apoi de pi întregi separaţi prin spaţii, reprezentând elementele din mulţimea Ai într-o ordine oarecare. Fiecare element din mulţimea Ai trebuie să fie un număr natural între 1 şi N1.

Dacă există mai multe soluţii atunci oricare se consideră corectă.

Restricţii

  • 1 ≤ N1, N2, M1, M2 ≤ 100 000
  • N1 - 1 ≤ M1
  • N2 - 1 ≤ M2
  • Pentru toate testele folosite la corectare reţeaua stradală din Atena verifică cele două proprietăţi enunţate de Parmenide.

Exemplu

atena.inatena.out
6 6
1 2
2 3
3 4
4 5
5 6
1 6
3 3
7 8
8 9
9 7
DA
2 1 4
1 2
1 3

Explicaţie

...

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?