Atklātās rūtiņas

grūts
Latvijas Informātikas olimpiādes logo
Uzdevums no Latvijas 38. (2024./2025. m. g.) informātikas olimpiādes (LIO) skolas kārtas.

Stāsts

Pēteris ir izdomājis jaunu datorspēli, kas notiek uz N×NN \times N liela rūtiņu laukuma un kurā darbojas viens vai vairāki tēli. Katrs tēls atrodas kādā no laukuma rūtiņām. Vienā laukuma rūtiņā var atrasties vairāki tēli. Spēlētājam ir atklātas(redzamas) tikai tās rūtiņas, kuras atrodas netālu no kāda tēla, bet pārējās ir aizklātas(slēptas). Precīzāk - dotam skaitlim dd spēlētājam ir redzamas tikai laukuma rūtiņas ar koordinātām [txi,tyi][t_{x_i}, t_{y_i}], kurās atrodas tēli, un visas rūtiņas, kuru koordinātām [x,y][x, y] vienlaikus ir spēkā sakarības xtxid|x-t_{x_i}| \leq d un ytyid|y-t_{y_i}| \leq d.

1. attēlā parādīts spēles laukuma piemērs, kur N=8N=8, d=1d=1 un tēli atrodas rūtiņās ar koordinātām [2;02; 0], [4;24; 2] un [5;65; 6]. Attēlā šīs rūtiņas atzīmētas ar cipariem.

1. attēls: Laukuma piemērs
1. attēls: Laukuma piemērs

Šajā situācijā atklātas ir 2323 no 6464 laukuma rūtiņām.

Spēles gaitā tēli var pārvietoties uz blakus rūtiņām (kopīga mala) un tad mainās tas, kuras rūtiņas ir vai nav atklātas. Piemēram, ja 2.2. tēls paiet vienu soli rindas indeksa pieaugšanas virzienā, tad atklāto rūtiņu skaits ir 2424, bet, ja divus, tad - 2222.

2. un 3. attēls: 2. tēls pagājis attiecīgi vienu un divus soļus
2. un 3. attēls: 2. tēls pagājis attiecīgi vienu un divus soļus

Uzrakstiet programmu, kas dotam tēlu izvietojumam un veiktajiem gājieniem nosaka katrā brīdī atklāto rūtiņu skaitu!

Ievaddati

evaddatu pirmajā rindā dotas četru veselu nenegatīvu skaitļu NN (laukuma malas garums, 1N20001 \leq N \leq 2000), dd (ap tēliem atklāto rūtiņu attālums, 0d300 \leq d \leq 30), TT (tēlu skaits, 1T1051 \leq T \leq 10^5) un GG (tēlu izdarīto gājienu skaits, 0G2×1050 \leq G \leq 2 \times 10^5) vērtības.

Nākamajās TT ievaddatu rindās katrā dotas viena tēla atrašanās vietas koordinātas - kolonnas numurs kk (0k<N0 \leq k < N) un rindas numurs rr (0r<N0 \leq r < N). Katram ii (1iT1 \leq i \leq T) ii-tā tēla atrašanās vietas koordinātas ir dotas ievaddatu i+1i+1-ajā rindā.

Nākamajās GG ievaddatu rindās katrā dots viena tēla viena gājiena apraksts - tēla numurs tt (1tT1 \leq t \leq T) un vv (pārvietošanās virzieni, 1v41 \leq v \leq 4). Virziena vv vērtība 11 nozīmē, ka tēla atrašanās vietas rindas koordinātas vērtība palielinās par 11, vērtība 22 - ka kolonnas koordinātas vērtība palielinās par 11, vērtība 33 - ka rindas koordinātas vērtība samazinās par 11, bet vērtība 44 - ka kolonnas koordinātas vērtība samazinās par 11. Starp katriem diviem blakus skaitļiem ievaddatos ir tukšumzīme.

Izvaddati

zvaddatos jābūt G+1G+1 rindai, kur katrā rindā ir naturāla skaitļa vērtība. Pirmajā rindā jābūt atklāto rūtiņu skaitam laukumā pirms tēli ir sākuši izdarīt gājienus. Katram ii (1iG1 \leq i \leq G) izvaddatu i+1i+1-ajā rindā jābūt atklāto rūtiņu skaitam pēc pirmo ii ievaddatos doto gājienu izdarīšanas.

Piemēri

Ievaddati

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

Izvaddati

23 24 22 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.

G=0G = 0

2
2.

T,G500T, G \leq 500

18
3.

d=1d = 1

32
4.

Bez papildu ierobežojumiem

48
Apakšuzdevumu punktu summa = 100.