Fenomenalni Frano

시간 제한1초메모리 제한1024 MB

요약
최대 1000개의 축에 평행한 직사각형이 주어질 때, 그 외곽선만 정확히 그리기 위해 Logo 거북이가 펜을 최소 몇 번 들어야 하는지 구한다.
난이도

어려움10점 중 8점

유형
그래프, 유니온 파인드, 구현
정답자
아직 제출이 없습니다

문제

Frano već godinama radi fenomenalne zadatke za natjecanja u programskom jeziku Logo. Dugogodišnje izlaganje takvim aktivnostima može biti pogubno za psihofizičko zdravlje pa je tako naš Frano postao prvi borac protiv zlostavljanja kornjača nepotrebnim dizanjem i spuštanjem olovaka. Frani u čast, cilj ovog zadatka je podizanje svijesti o problemima s kojima se svakodnevno susreću Logo kornjače. . .

Tipični zadaci za programski jezik Logo uključuju crtanje pravokutnika po ekranu. Crtanje u programskom jeziku Logo vrši se pomicanjem kornjače.

Kornjača je u svakom trenutku zadana pozicijom i smjerom gledanja, a u svojim zubima drži olovku koja može biti spuštena ili podignuta. Ako je olovka spuštena, tada pomicanje kornjače ostavlja trag na ekranu.

Kornjača se na početku svakog programa nalazi na koordinatama (0,0)(0, 0), gleda u pozitivnom smjeru y-osi, te drži olovku spuštenom. Njom ćemo u ovom zadatku upravljati isključivo ovim skupom naredbi:

  • FD x – pomiče kornjaču za xx piksela u smjeru gledanja.
  • LT x – okreće kornjaču za xx stupnjeva ulijevo.
  • RT x -– okreće kornjaču za xx stupnjeva udesno.
  • PU – podiže olovku.
  • PD – spušta olovku.

Zadan je skup pravokutnika stranica paralelnih s koordinatnim osima koje je potrebno nacrtati na ekranu. Kornjača smije više puta spuštenom olovkom preći preko istog segmenta ekrana, meñutim nije dopušteno da nacrta ništa više osim zadanih pravokutnika.

Napišite program koji će odrediti koliko je najmanje puta potrebno podići olovku da bismo nacrtali zadani skup pravokutnika.

입력

U prvom je retku prirodan broj nn (1≤n≤1,0001 ≤ n ≤ 1\\,000), broj pravokutnika koje je potrebno nacrtati.

U svakom od sljedećih nn redaka su po četiri cijela broja x_1x\_1, y_1y\_1, x_2x\_2, y_2y\_2 (−500≤x_1<x_2≤500-500 ≤ x\_1 < x\_2 ≤ 500), (−500≤y_1<y_2≤500-500 ≤ y\_1 < y\_2 ≤ 500). Točke (x_1,y_1)(x\_1, y\_1) i (x_2,y_2)(x\_2, y\_2) su dijagonalno nasuprotne točke pravokutnika.

출력

U jedini redak potrebno je ispisati koliko je najmanje puta potrebno podići olovku da bismo nacrtali zadani skup pravokutnika.

예제3

  1. 예제 1

    입력
    1
    0 0 10 10
    
    예상 출력
    0
    
  2. 예제 2

    입력
    1
    -5 -5 5 5
    
    예상 출력
    1
    
  3. 예제 3

    입력
    5
    1 1 4 4
    3 3 6 6
    4 4 5 5
    5 0 8 3
    6 1 7 2
    
    예상 출력
    2