Maşınların simvolları tanımasını çətinləşdirmək məqsədilə "CAPTCHA" (Completely Automated Public Turing test to tell Computers and Humans Apart) sistemində müxtəlif çevrilmələrdən istifadə olunur. Belə çevrilmələrdən biri "kölgə salınması"dır: simvol sürüşdürülərək özü üzərinə yerləşdirilir. Məsələn, aşağıdakı şəkildə 8×8 ölçülü təsvir üçün "S" hərfinə kölgə salınma prosesi göstərilir.

16×16 ölçülü təsvirə baxaq. Başlanğıc nöqtəsi sol üst küncdədir; üfüqi x oxu soldan sağa, şaquli y oxu yuxarıdan aşağıya yönəlib. (x, y) vektoru təsvirin sürüşdürüldüyü vektordur və buna sürüşmə vektoru deyilir. Yuxarıdakı şəkildə sürüşmə vektoru (3, 1)-dir: təsvir 3 nöqtə sağa, 1 nöqtə aşağıya sürüşdürülüb. Kölgə tətbiq edilməmiş orijinal təsvirə təsvir, dəyişdirilmiş təsvirə isə kölgəli təsvir deyilir. Həmçinin qəbul edirik ki, sürüşmə vektoru elə seçilir ki, kölgəli (qara) nöqtə 16×16 kvadratından kənara çıxmasın.
Tapşırığınız odur ki, əks çevrilmə aparan proqram yazasınız: kölgəli təsvirə əsasən, minimal sayda kölgəli (qara) nöqtəyə malik orijinal təsvir və sürüşmə vektorunu tapın. Bir neçə cavab olduğu halda, istənilən biri çıxış kimi qəbul edilir.
Məhdudiyyətlər. Sürüşmə vektoru elə məhdudlaşdırılıb ki, qara nöqtələr 16×16 kvadratından kənara çıxmasın. -15 ≤ x, y ≤ 15.
Girişdə, kölgəli təsvir verilir və bu təsvir 16 sətirdən ibarətdir, hər biri 16 simvoldan ibarət olmalıdır. Boş (ağ) nöqtə "." (ASCII = 2Eh) simvolu ilə, kölgəli nöqtə isə "#" (ASCII = 23h) simvolu ilə göstərilir.
Çıxışın ilk sətrində boşluqla ayrılmış iki tam ədəd x və y (sürüşmə vektoru) olmalıdır. Sonra 16 sətirdən ibarət 16 simvol daxil edilməlidir — təsvir girişdə olduğu kimi kodlanır.
Nümunə 1