Patiesības teicēji un meļi

Patiesības teicēji un meļi

grūts
Latvijas Informātikas olimpiādes logo
Uzdevums no Latvijas 38. (2024./2025. m. g.) informātikas olimpiādes (LIO) novada kārtas; jaunākajai (8.-10. klašu) grupai.

Stāsts

Kādā ciemā dzīvo NN iedzīvotāji, kas sanumurēti ar naturāliem skaitļiem no 11 līdz NN pēc kārtas. Katrs ciemata iedzīvotājs ir vai nu patiesības teicējs, kas vienmēr saka taisnību, vai arī melis, kas visu laiku melo.

Etnogrāfam Rihardam ir izdevies savākt ciema iedzīvotāju MM izteikumus vienam par otru. Visus izteikumus Rihards ir pierakstījis formā:

  • "Ciema iedzīvotājs ii apgalvo, ka iedzīvotājs jj ir patiesības teicējs."

vai

  • "Ciema iedzīvotājs ii apgalvo, ka iedzīvotājs jj ir melis."

Šajos apgalvojumos 1i,jN1 \leq i,j \leq N un iji \neq j.

Rihards vēlas noskaidrot, kāds ir lielākais iespējamais meļu skaits ciema iedzīvotāju vidū.

Piemēram, ja ciemā ir astoņi iedzīvotāji un Rihards ir pierakstījis šādus piecus izteikumus:

  • Ciema iedzīvotājs 11 apgalvo, ka iedzīvotājs 22 ir patiesības teicējs.
  • Ciema iedzīvotājs 22 apgalvo, ka iedzīvotājs 33 ir melis.
  • Ciema iedzīvotājs 55 apgalvo, ka iedzīvotājs 66 ir melis.
  • Ciema iedzīvotājs 77 apgalvo, ka iedzīvotājs 33 ir patiesības teicējs.
  • Ciema iedzīvotājs 88 apgalvo, ka iedzīvotājs 55 ir patiesības teicējs.

tad meļu skaits ciemā ir, augstākais, pieci. Tie var būt, piemēram, iedzīvotāji ar numuriem 33, 44, 55, 77 un 88.

Ievērojiet, ka šajā piemērā neviens izteikums neraksturo iedzīvotāju nr. 44.

Uzrakstiet datorprogrammu, kas dotai izteikumu kopai nosaka, kāds lielākais meļu skaits var būt ciemā!

Ievaddati

Ievaddatu pirmajā rindā doti divi naturāli skaitļi - ciema iedzīvotāju skaits NN (N2105)(N \leq 2 \cdot 10^5) un izteikumu skaits MM (M2105)(M \leq 2 \cdot 10^5).

Katrā no nākamajām MM ievaddatu rindām dots viena izteikuma apraksts - trīs veseli nenegatīvi skaitļi: ciema iedzīvotāja, kurš izteicis apgalvojumu, numurs ii (1iN)(1 \leq i \leq N), iedzīvotāja, par kuru izteikts apgalvojums, numurs jj (1jN,ij)(1 \leq j \leq N, i \neq j) un 11, ja apgalvojums ir "ir patiesības teicējs", vai 00, ja apgalvojums ir "ir melis".

Starp katriem diviem blakus skaitļiem ievaddatos ir tukšumzīme.

Izvaddati

Izvaddatu vienīgajā rindā jāizvada vesels nenegatīvs skaitlis - lielākais iespējamais meļu skaits starp ciema iedzīvotājiem.

Piemēri

Ievaddati

8 5 1 2 1 2 3 0 5 6 0 7 3 1 8 5 1 Kopēt kodu

Izvaddati

5 Kopēt kodu

Ievaddati

5 3 3 1 1 5 4 1 3 2 0 Kopēt kodu

Izvaddati

4 Kopēt kodu

Izpildes resursu ierobežojumi

CPU izpildes laiks uz testu: 0.5 sekundes.
RAM atmiņas apjoms uz testu: 256 megabaiti.

Apakšuzdevumi un to vērtēšana

#Apraksts un ierobežojumiPunkti
1.

Uzdevuma tekstā dotie trīs testi.

2
2.

N20N \leq 20, katrs iedzīvotājs izsaka ne vairāk kā vienu apgalvojumu.

8
3.

Visi apgalvojumi ir "ir melis".

12
4.

Bez papildu ierobežojumiem.

33
5.

Bez papildu ierobežojumiem.

45
Apakšuzdevumu punktu summa = 100.

1. apakšuzdevuma ievaddati

10 20 9 6 0 7 3 1 2 8 1 4 7 0 10 2 1 1 9 1 5 8 1 4 8 0 3 1 0 4 2 0 1 10 0 5 3 1 6 4 0 1 4 1 5 7 1 5 10 1 3 8 1 10 8 1 7 10 1 9 8 0 Kopēt kodu
20 24 11 8 1 12 1 0 18 10 0 6 4 0 10 7 1 4 1 0 17 20 1 9 15 1 17 7 0 15 5 1 6 18 1 7 1 0 8 13 1 16 18 1 2 19 0 3 18 0 14 7 0 17 16 1 2 12 1 1 20 1 16 12 0 5 9 1 4 14 0 17 10 0 Kopēt kodu
30 32 9 13 0 4 9 0 8 24 0 19 27 0 6 25 0 27 26 0 1 13 0 27 1 1 9 7 0 30 22 0 18 25 0 13 4 1 28 30 0 12 24 0 23 12 1 1 4 0 28 11 0 2 21 1 23 2 0 11 15 0 17 3 1 28 22 1 19 1 0 14 13 0 7 13 1 1 7 0 22 11 0 18 6 1 8 29 0 5 10 1 3 16 1 29 2 1 Kopēt kodu