Ուղարկել | Բոլոր լուծումները | Լավագույն լուծումները | Վերադառնալ ցուցակին |
TSOVMART - Ծովամարտ |
Հայտնի «Ծովամարտ» խաղում գործողությունը տեղի է ունենում M × N չափի վանդակավոր թղթի վրա։ Խաղադաշտում կարող են տեղադրվել կամայական ձևի տարբեր նավեր։ Յուրաքանչյուր նավ իրենից ներկայացնում է կապակցված պատկեր։ Պատկերը կոչվում է կապակցված, եթե այդ պատկերին պատկանող ցանկացած վանդակից, շարժվելով միայն ըստ կողի հարևան 4 վանդակներով կարելի է հասնել պատկերին պատկանող ցանկացած այլ վանդակի։ Ոչ մի երկու նավեր ընդհանուր կետեր չունեն։
Խաղի ընթացքում նավը կարող է երեք վիճակներից մեկում գտնվել.
- Եթե նավի վրա ոչ մի արկ չի ընկել, ապա այն «կենդանի» է։
- Եթե նավի բոլոր վանդակներում արկեր են ընկել, ապա այն «սպանված» է։
- Մնացած դեպքերում նավը «վիրավոր» է։
Գրել ծրագիր, որը ներածելով խաղադաշտը ներկայացնող սիմվոլները, հաշվի «կենդանի», «սպանված» և «վիրավոր» նավերի քանակը։
Մուտք
Առաջին տողում տրված են դաշտի տողերի M և սյուների N քանակները (0 <M, N < 50): Հաջորդ M տողերից յուրաքանչյուրը պարունակում է N թիվ։ Այդ թվերը կարող են ըդունել հետևյալ արժեքները.
0 – վանդակում նավ չկա (ջուր է)
1 – վանդակում նավ է, վանդակը ռմբակոծված չէ
-1 – վանդակում նավ է, վանդակը ռմբակոծված է
Ելք
Ելքային ֆայլում պետք է արտածել, իրարից մեկ բացակով անջատված, երեք թիվ՝ «կենդանի», «սպանված» և «վիրավոր» նավերի քանակները։
Օրինակ
Մուտք. 7 8
0 0 1 0-1 -1 0 1
1 0 0 0 0 0 0 0
1 0 1 1 1 1 1 0
-1 0 1 0 0 0 1 0
0 0 1 1 1 -1 1 0
1 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0
Ելք. 3 1 2
Ավելացրեց. | Andreasyan |
Ամսաթիվ. | 2015-01-20 |
Ժամանակի սահմանափակումը. | 0.100s |
Ծրագրի տեքստի սահմանափակումը. | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Լեզուներ. | C CSHARP C++ 4.3.2 CPP CPP14 JAVA PAS-GPC PAS-FPC PYTHON3 |