ZEMLJA | 프로그래밍의 벗 PivotOJ
PivotOJ

ZEMLJA

시간 제한: 2000ms메모리 제한: 1024MB출처: CHC 2024 Junior Croatian Olympiad in InformaticsBOJ 32006
이 문제는 본문 이미지 일부가 표시되지 않습니다. 텍스트만으로 풀이가 어려울 수 있습니다.

문제

Farmer Lasagna je kupio zemljište svojih snova na kojem će prebivati njegove krave i na kojima će uzgajati svoje kukuruze. Svi znamo da krave vole jesti kukuruze i da će uništiti sve usjeve do kojih mogu doći. Stoga je Lasagna odlučio izgraditi dugačke zidove koji su dovoljno visoki i čvrsti da njegove krave ne mogu preći preko njih. Kako je Lasagna zauzet nastupom u Švedskoj, pozvao te je da mu pomogneš oko organizacije njegovog zemljišta.

Njegovo zemljište možemo zamisliti kao koordinatnu ravninu, a svaki zid kao pravac na toj ravnini. Najavio je da će ćeš dobiti Q upita, koji mogu biti jedan od dvije različite vrste:

  1. Izgradi zid zadan formulom ax + by = c, tj. pravac koji će činiti sve točke (x, y) koje zadovoljavaju tu jednadžbu. Lasagna garantira da će a i b biti cijeli brojevi od -1 do 1.
  2. Promatrajući do sada postavljene zidove, ako je krava u točki (x1, y1) i usjev kukuruza je zasađen u točki (x2, y2), može li ta krava doći do točke (x2, y2) i uništiti usjev?

Možeš li mu pomoći i odgovoriti na sve njegove upite?

입력

U prvom je retku prirodan broj Q (1 ≤ Q ≤ 300 000), broj upita.

U idućih Q redaka će biti u jednom od dva moguća formata:

  1. „1 a b c“, gdje a, b i c (-1 ≤ a, b ≤ 1, a ≠ 0 ili b ≠ 0, -3∙108 ≤ c ≤ 3∙108) cijeli brojevi koji redom predstavljaju brojeve navedene u tekstu iznad. U test primjerima je zagarantirano da u trenutku izgradnje nema zida koji se preklapa s novim zidom u svim točkama.
  2. „2 x1 y1 x2 y2“, gdje x1, y1, x2 i y2 (-108 ≤ x1, y1, x2, y2 ≤ 108) su redom cjelobrojne koordinate pozicije krave (x1, y1) i usjeva (x2, y2). U testnim podacima će vrijediti da u tom trenutku navedene točke neće ležati na jednom od zidova i da su (x1, y1) i (x2, y2) različite točke.

출력

Za svaki upit druge vrste, redom u zaseban redak, ispiši „DA“ (bez navodnika) ako krava može doći do usjeva ili „NE“ (bez navodnika) inače.

힌트

Opis prvog probnog primjera: Prvi pravac prolazi osi apscisa (x-os) i odvaja sve točke s pozitivnom y-koordinatom od onih s negativnom. Drugi pravac prolazi osi ordinata (y-os) i konačno odvaja sve točke po kvadrantima.

Opis trećeg probnog primjera: Ispod je skica na kojoj su pravci koji odgovaraju svim zidovima i sve točke koje smo promatrali.

[이미지 1]

예제

예제 1

입력
4
1 0 1 0
2 -1 2 2 1
1 -1 0 0
2 -1 2 2 1
출력
DA
NE

예제 2

입력
5
1 -1 -1 2
1 1 -1 3
2 0 0 -4 5
2 5 -3 3 1
2 1 -5 -10 2
출력
DA
NE
NE

예제 3

입력
8
2 -2 3 1 2
1 1 -1 -3
2 1 2 -2 3
2 3 3 1 2
1 0 1 1
2 3 3 5 6
1 1 0 4
2 1 2 5 6
출력
DA
NE
DA
DA
NE
코드를 제출하려면 로그인하세요.