Sizə n \times m ölçüdə kvadratlara bölünmüş bir sahə verilir. Sətirlər yuxarıdan aşağıya -dən -ə, sütunlar isə soldan sağa -dən -ə qədər nömrələnir. Robotunuz hüceyrəsində yerləşir.
Hər bir hüceyrədə bir ədəd var. Robot yalnız yerləşdiyi hüceyrədəki ədədi görə bilər. Robot sola, sağa, aşağı və yuxarı hərəkət edə bilər, amma sahənin ölçülərini bilmir.
Tapşırığınız: robotdan istifadə edərək sahədəki ən böyük ədədi tapın.
Birinci sətrdə sahənin ölçüləri olan iki tam ədəd və (1 \leq n, m \leq 100) verilir.
Sonrakı sətrin hər birində tam ədəd — a_{i1}, a_{i2}, \ldots, a_{im} (0 \leq |a_{ij}| \leq 10^9) verilir — sahədəki ədədlərdir.
Aşağıdakı funksiyanı reallaşdırmalısınız:
integer solve()
Bu funksiya sahədəki maksimum ədədi qaytarmalıdır.
Aşağıdakı funksiyalardan istifadə edə bilərsiniz:
integer getValue()
Robotun yerləşdiyi hüceyrədəki ədədi qaytarır.
boolean canMoveLeft()boolean canMoveRight()boolean canMoveUp()boolean canMoveDown()
Hər bir funksiya robotun göstərilən istiqamətdə hərəkət edə bilib-bilmədiyini (sahədən kənara çıxmadan) bildirir: əgər hərəkət etmək mümkündürsə true, əks halda false qaytarılır.
void moveLeft()void moveRight()void moveUp()void moveDown()
Hər bir funksiya robotu göstərilən istiqamətə bir hüceyrə hərəkət etdirir.
Sahədəki ən böyük ədədi çap edin.
Tutaq ki, n = 2, m = 3 və
Əgər robot hüceyrəsindədirsə, canMoveLeft və canMoveUp funksiyaları false, canMoveRight və canMoveDown isə true qaytaracaq. Həmin mövqedə getValue funksiyasını çağırsanız, qaytaracaq.
Əgər moveDown funksiyasını çağırsanız, robot mövqeyində olacaq. O zaman canMoveDown funksiyası false, getValue isə qaytaracaq.
Qeyd: Nümunə funksiyaların istifadəsini göstərir, məsələnin həllini vermir.
Nümunə 1
(50 bala qədər) n \leq 1;
— düzgün cavab tapmaq üçün lazım olan minimal hərəkət sayı, isə bütün testlərdə etdiyiniz maksimal hərəkət sayı olsun. Siz \max(\lfloor 50 - \sqrt{t - c} \rfloor, 0) bal alacaqsınız.
(50 bala qədər) əlavə məhdudiyyətsiz;
— düzgün cavab tapmaq üçün lazım olan minimal hərəkət sayı, isə bütün testlərdə etdiyiniz maksimal hərəkət sayı olsun. Siz \max\left(\lfloor 50 - (1/3.0)^{(t-c)} \rfloor, 0\right) bal alacaqsınız.