Snömurskontrollant | 프로그래밍의 벗 PivotOJ
PivotOJ

Snömurskontrollant

시간 제한: 1000ms메모리 제한: 1024MB출처: Programmeringsolympiaden 2017 — finalBOJ 20891
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

PO-juryn kan inte programmera. Efter fiaskot i onlinekvalet, där den trasiga domaren för problemet Snömur råkade ge Island vinsten med 211.58 av 100 poäng på problemet har juryn bestämt sig för att outsource:a sina domare till folk som faktiskt kan koda -- PO-finalister.

Problemet var som följer:

Sverige ska bygga en snömur, av en viss bredd WW. Som byggmaterial finns det ett antal snöblock som alla har höjden 1, men kan ha olika bredder. När muren konstrueras måste varje block uppfylla följande regel: på raden under blocket, på de två positioner blocket har sina ändpunkter, måste det ligga ett block precis till höger och vänster om punkten, undantaget början och slutet på en rad, där det istället måste finnas en ändpunkt på varje rad (se den vänstra, näst översta muren i Figur 1 där detta saknas på översta raden).

Det får dessutom inte finnas hålrum på samma position på två direkt efterföljande rader i muren (den tomma raden precis ovanför muren räknas inte).

Följande bild illustrerar några otillåtna (vänster) och tillåtna (höger) murar:

[이미지 1]

Figure 1: Ett antal otillåtna (vänster) och tillåtna (höger) murar.

Givet ett förslag på hur muren ska se ut, avgör om muren är en tillåten mur.

입력

Den första raden innehåller två heltal WW och HH - bredden och höjden på muren.

De följande HH raderna beskriver raderna i muren. Varje rad börjar med ett heltal B1B \ge 1, antalet block på raden. Detta följs av BB par av heltal Pj,LjP_j, L_j, den (noll-indexerade) positionen och längden för det jj:te blocket på raden. Dessa kommer ges i stigande PjP_j-ordning, d.v.s från vänster till höger. Inga block kommer överlappa eller ligga utanför muren.

Raderna är givna underifrån - dvs den första raden i indata är den understa raden i muren.

Låt summan av antalet block över alla rader vara NN. Detta tal har gränser i poängsättningstabellen.

출력

Du ska skriva ut YES om muren är tillåten, och NO om den inte är det.

힌트

De fyra första exemplen motsvarar de fyra otillåtna murarna till vänster i bilden. De sista fyra exemplen motsvarar de fyra tillåtna murarna till höger i bilden.

예제

예제 1

입력
10 3
1 0 10
2 0 4 6 4
2 0 3 7 3
출력
NO

예제 2

입력
10 3
1 0 10
2 0 4 6 4
1 0 9
출력
NO

예제 3

입력
10 3
1 0 10
2 0 4 6 4
2 0 5 5 5
출력
NO

예제 4

입력
10 3
1 0 10
2 0 4 6 4
2 0 4 4 6
출력
NO

예제 5

입력
10 3
1 0 10
2 0 4 6 4
1 0 10
출력
YES

예제 6

입력
10 3
1 0 10
2 0 4 6 4
2 0 7 8 2
출력
YES

예제 7

입력
10 3
2 0 2 3 7
2 0 4 6 4
1 0 10
출력
YES

예제 8

입력
10 3
1 0 10
3 0 4 4 2 9 1
2 0 4 4 6
출력
YES
코드를 제출하려면 로그인하세요.