Vur və Partlat
Hit and blow iki nəfərin oynadığı məşhur kod qırma oyunudur, burada biri kod yaradan, digəri isə kod qırandır. Oyunun məqsədi kod qıranın, kod yaradanın ağlında tutduğu gizli nömrəni düzgün təxmin etməsidir.
Oyun belə oynanılır: Kod yaradan əvvəlcə dörd fərqli rəqəmdən ibarət olan bir gizli nömrə seçir, bu nömrə sıfırla da başlaya bilər. Daha sonra kod qıran gizli nömrəni təxmin etmək üçün ilk cəhdini edir. Təxmin edilən nömrə qanuni olmalıdır (yəni dörd fərqli rəqəmdən ibarət olmalıdır). Kod yaradan, kod qırana hit və blowların sayını bildirir. Hitlər düzgün mövqedə olan uyğun rəqəmlərdir, blowlar isə fərqli mövqedə olanlardır. Məsələn, əgər gizli nömrə 4321 və təxmin edilən 2401 olarsa, bir hit və iki blow var, burada 1 hitdir və 2 və 4 blowlardır. Kod qırana bu məlumat verildikdən sonra, kod qıran ikinci cəhdini edir, sonra kod yaradan hit və blowların sayını bildirir, sonra kod qıran üçüncü cəhdini edir və s. Oyun kod qıran düzgün nömrəni verdikdə bitir.
Bu məsələdə sizin vəzifəniz verilmiş vəziyyətə əsasən, kod qıranın növbəti iki cəhd ərzində gizli nömrəni məntiqi olaraq təxmin edə biləcəyini müəyyən edən bir proqram yazmaqdır. Proqramınıza kod qıranın təxmin etdiyi dörd rəqəmli nömrələr və kod yaradanın həmin nömrələrə verdiyi cavablar veriləcək və sonra aşağıdakı qaydalara uyğun olaraq çıxış etməlidir:
Əgər yalnız bir gizli nömrə mümkündürsə, həmin gizli nömrəni çap edin;
Əgər bir neçə gizli nömrə mümkündürsə, amma bir və ya daha çox kritik nömrə varsa, ən kiçik olanını çap edin;
Əks halda, "????" (dörd sual işarəsi) çap edin.
Burada, kritik nömrələr o deməkdir ki, növbəti cəhddə onlar üçün hit və blowların sayı bildirildikdən sonra, kod qıran gizli nömrəni unikal olaraq müəyyən edə bilər.
Giriş verilənləri
Giriş bir neçə məlumat dəstindən ibarətdir. Hər bir məlumat dəsti aşağıdakı formatda verilir:
N
dörd-rəqəmli-nömrə_1 n-hit_1 n-blow_1
...
dörd-rəqəmli-nömrə_N n-hit_N n-blow_N
N edilmiş cəhdlərin sayıdır. dörd-rəqəmli-nömrə_i i-ci cəhddə təxmin edilən dörd rəqəmli nömrədir və n-hit_i və n-blow_i həmin nömrə üçün hit və blowların sayıdır. Hər bir məlumat dəstində ən azı bir mümkün gizli nömrənin olduğu zəmanət verilir. Girişin sonu sıfır olan bir sətirlə göstərilir. Bu sətir işlənməməlidir.
Çıxış verilənləri
Hər bir məlumat dəsti üçün, qaydalara uyğun olaraq bir dörd rəqəmli nömrə və ya "????" bir sətirdə çap edin.