Bowling Skor Köməkçisi#6621

Bowling Skor Köməkçisi

1 saniyə
64 meqabayt
Çox çətin

Bowling ABŞ-da çox populyar bir idman növüdür. Lakin oyunu qazanmaq üçün lazım olan kadrları proqnozlaşdırmaq ACM üzvləri olmayanlar üçün bir qədər çətindir, buna görə də sizdən bunun üçün proqram yazmaq tələb olunur.

Bowling oynamayan və ya hesabın necə hesablandığını unudan hər kəs üçün, nümunə giriş və çıxışdan sonra gələn bir neçə səhifədə bowling hesabının necə hesablanacağına dair təsvir var. Əsas fikir ondan ibarətdir ki, qalib gəlmək üçün rəqibinizdən daha yüksək xal almalısınız.

Rəqibinizin yekun hesabı və səkkizinci kadr boyunca hər topda vurduğunuz pinlərin sayı verildikdə, qazanmaq üçün nə etməli olduğunuzu hesablamalısınız (əgər bu, hətta mümkündürsə). Əgər qətiyyən qazana bilmirsinizsə, "impossible" çap edin, əks halda leksikoloji sırada ilk olan qalib gəlməyə imkan verəcək rulonların ardıcıllığını çap edin. Yəni, ilk rulonda ən aşağı, ilk rulon nəzərə alınmaqla ikinci rulonda ən aşağı, ilk iki rulon nəzərə alınmaqla üçüncü rulonda ən aşağı və s..

Giriş

Bu problemin girişi bir sıra test hallarından ibarət olacaq. Hər bir hal rəqibinizin yekun hesabından və ilk səkkiz kadr üçün topun hər rulonunda vurulan pinlərin sayından ibarət olacaq. Girişin sonu mənfi bir rəqəmlə göstəriləcək. Fayldakı digər bütün dəyərlər etibarlı oyun pin sayları olacaq. Rəqibinizin hesabı 0 ilə 300 arasında bir tam ədəd olacaq və rulonlarınızda vurulan pinlərin sayı 10-dan (hər kadrın əvvəlində dayanan pinlərin sayı olan 10) az və ya ona bərabər olan qeyri-mənfi tam ədədlər olacaq. Aşağıdakı nümunə giriş yalnız nümunələrlə necə uyğunlaşdığını aydınlaşdırmaq üçün səliqəli formatlanmışdır. Faktiki giriş faylında aralıq və sətir fasilələri baxımından heç bir formatı qəbul edə bilməyəcəyiniz üçün girişi diqqətlə emal etməlisiniz!

Çıxış

Hər bir giriş halı üçün oyunu qazanmaq üçün lazım olan rulonları çap edin. Bu formatı dəqiq izləyin: "Case", bir boşluq, hal nömrəsi, iki nöqtə və bir boşluq, və həmin hal üçün cavab ya "impossible" ya da tələb olunan pinlərin sayı, hər cüt rəqəm arasında dəqiq bir boşluq və heç bir son boşluq olmadan.

Bowlingdə hesabı necə saxlamaq olar:

On pin var ki, onlara top ataraq onları vurmağa çalışırsınız.

Hər on pin dəsti üçün, əgər onları ilk topunuzla hamısını vurmasanız, ikinci cəhd əldə edirsiniz.

On pin dəstinə atdığınız bir və ya iki top "kadr" adlanır və oyunda on kadr var.

Əgər ilk rulonunuzla bütün pinləri vurursanız, bu "strike" adlanır. Əgər bütün pinləri vurursanız, amma bu hər iki rulon tələb edirsə, bu "spare" adlanır.

Hesab vurduğunuz pinlərin cəmi kimi hesablanır, lakin aşağıda təsvir edildiyi kimi spare və strike üçün bonuslar var. Əgər heç vaxt spare və ya strike əldə etmirsinizsə, hesabınız sadəcə iyirmi rulonunuzun cəmidir.

Əgər strike əldə edirsinizsə, növbəti iki rulonun hesabını iki dəfə sayırsınız. Əgər spare əldə edirsinizsə, növbəti bir rulonun hesabını iki dəfə sayırsınız.

Onuncu kadr xüsusi olaraq, onuncu kadrda strike və ya spare üçün "növbəti" rulon(lar) normal olaraq mövcud olmazdı. Əgər onuncu kadrda spare əldə edirsinizsə, spare üçün sadəcə 10-a əlavə edilən on pinin yeni dəstinə bir rulon daha əldə edirsiniz. Əgər onuncu kadrda strike əldə edirsinizsə, iki rulon daha əldə edirsiniz. Əgər bunlardan birincisi də strike olarsa, ikinci rulonunuzu on pinin yeni dəstinə atırsınız. Lakin, əgər davamlı strike əldə edirsinizsə, sonsuz getmirsiniz. Onuncu kadrda ilk strike-dən sonra sadəcə iki rulon əldə edirsiniz və onlar sadəcə ilk strike üçün 10-a əlavə edilir, onuncu kadr üçün maksimum hesabı 30 edir (və hər hansı digər kadr üçün).

Beləliklə, onuncu kadrda üç rulon ola bilər, beləliklə oyunda maksimum rulon sayı 2 * 9 + 3 = 21-dir. Minimum rulon sayı isə ilk doqquz kadr üçün strike əldə edirsinizsə, lakin onuncuda strike və ya spare əldə etmirsinizsə baş verir. Bu, 9 + 2 = 11 rulon nəticələndirir.

Nümunələr

Nümunə 1

Loading
Loading

Qeyd

On kadr üçün hər rulon üçün vurulan pinlərin sayını veririk və sonra hesabı hesablayırıq.

Nümunə 1

1

2

3

4

5

6

7

8

9

10

4 3

6 2

4 2

8 1

4 5

6 2

7 2

9 0

0 5

6 3

Spare və ya strike olmadığı üçün hesab sadəcə bu rəqəmlərin cəmidir ki, bu da 79-dur.

Nümunə 2

1

2

3

4

5

6

7

8

9

10

4 6

6 2

4 2

8 1

10

6 2

7 2

9 0

0 5

6 3

Bu, nümunə 1-ə bənzəyir, lakin 1-ci kadrda spare və 5-ci kadrda strike var. Qeyd edək ki, 3-cü kadrda ilk rulon olan 6-nı iki dəfə saymadan əvvəl 1-ci kadrda cəmi 10 var. Həmçinin, 5-ci kadrda strike olduğu üçün 6-cı kadrdakı iki rulonu iki dəfə sayırıq. Yekun hesab 97-dir.

Nümunə 3

1

2

3

4

5

6

7

8

9

10

4 6

6 2

4 2

8 1

10

10

7 2

9 0

0 5

6 3

Bu, nümunə 2-yə bənzəyir, lakin 6-cı kadrda strike var. Qeyd edək ki, iki pin daha vurulmuşdur, beləliklə əsas hesab 85-dir, nümunə 2-də olduğu kimi 83 əvəzinə. Əvvəlki kimi, 2-ci kadrda ilk rulonu iki dəfə sayırıq, bu bizə 91 verir. Sonra 5-ci kadrdakı strike-dən sonra iki rulonu iki dəfə sayırıq ki, bunlar 10 və 7-dir. Bu bizə 108 verir. Nəhayət, 7-ci kadrdakı iki rulonu iki dəfə sayırıq, bu bizə 117 verir.

Nümunə 4

1

2

3

4

5

6

7

8

9

10

4 6

6 2

4 2

8 1

10

10 7

2 9

0 0

5 6

4 7

Bu, nümunə 3-ə bənzəyir, lakin 10-cu kadrda spare var. Onuncu kadrda ikinci rulonda əlavə pin hesabı 118-ə yüksəldərdi (nümunə 3-dəki eyni hesablamalar), lakin spare üçün son rulondakı 7-ni əlavə edirik, beləliklə cəmi 125 olur.

Nümunə 5 (maksimum hesab, "mükəmməl oyun")

1

2

3

4

5

6

7

8

9

10

10

10

10

10

10

10

10

10

10

10 10 10

Hər kadr üçün ümumi hesab 30-dur, çünki strike üçün 10 və hər ikisi də 10 olan növbəti iki rulon əldə edirik. Bu bizə maksimum 300 hesabını verir.