Matca cea tânără a decis să părăsească stupul şi să îşi facă propria familie de albine, lucru nu tocmai uşor. Ea, împreună cu albinele sale trebuie să meargă din floare în floare până la marginea plantaţiei. Plantaţia are formă dreptunghiulară cu N
linii (numerotate de la 1
la N
) şi M
coloane (numerotate de la 1
la M
). În fiecare punct este o floare. Florile sunt codificate cu 0
sau 1
, cele codificate cu 0
putând fi ocupate doar de matcă, cele cu valoarea 1
doar de câte o albină. Roiul de albine pleacă de la marginea stângă a plantaţiei (coloana 1
) şi trebuie să ajungă în marginea din dreapta (coloana M
). La un pas, toate albinele (inclusiv matca) trebuie să se afle pe poziţii consecutive pe aceeaşi coloană. La pasul următor ele se pot deplasa doar pe coloana următoare, dar tot pe poziţii vecine (eventual îşi pot schimba ordinea). Efortul depus pentru deplasarea de pe o coloană pe alta este egal cu diferenţa dintre prima linie ocupată de un membru al roiului de albine (matca sau albină) la pasul anterior şi prima linie ocupată de un membru al roiului albine (matca sau albină) după mutare.
Cerința
Determinaţi numărul maxim de membri ai roiului de albine (matcă + albine) care pot părăsi stupul pentru a traversa toată plantaţia în scopul formării unei noi familii. Determinaţi, de asemenea efortul total minim cu care matca poate traversa plantaţia cu numărul maxim de albine determinat.
Date de intrare
Prima linie a fişierului de intrare albine.in
conţine două numere naturale N
şi M
separate printr-un spaţiu reprezentând numărul de linii, respectiv numărul de coloane ale plantaţiei.
Următoarele N
linii conţin câte M
numere din mulţimea {0,1}
, separate prin câte un spaţiu, reprezentând codurile florilor de pe fiecare linie a plantaţiei.
Date de ieșire
Prima linie a fişierului de ieşire albine.out
conţine 2
numere naturale separate printr-un spaţiu, reprezentând numărul maxim de membri ai familiei de albine (matcă + albine) care pot traversa plantaţia (inclusiv matca) şi costul minim al traversării plantaţiei.
Restricții și precizări
1<=N, M <=1000
- Pentru
50%
din teste1<=N, M <=300
- Un roi de albine este format dintr-o matcă şi
0
sau mai multe albine. - Se garantează existenţa unui traseu.
- Matca poate parcurge plantaţia şi singură.
- Pentru rezolvarea corectă doar a primei cerinţe se acordă
30%
din punctaj.
Exemplu:
albine.in
5 3 0 1 0 0 0 1 1 1 0 1 1 1 0 0 0
albine.out
3 0
Explicație
Numărul maxim de membri ai familiei de albine care pot traversa plantația este 3
(matca și 2
albine). O posibilitate de traversare a plantației cu cost 0
este evidențiată mai jos.
0 | 1 | 0 |
0 | 0 | 1 |
1 | 1 | 0 |
1 | 1 | 1 |
0 | 0 | 0 |
O altă posibilitate (nu şi singura) de a parcurge plantaţia ar fi fost ca grupul de 3
albine sa se aşeze pe prima coloană începând cu poziţia 3
, pe coloana a 2
–a începând cu poziţia 1
, iar pe coloana a 3
–a începând cu poziţia 2
. În acest caz costul total ar fi fost 3
. Această posibilitate este evidențiată mai jos:
0 | 1 | 0 |
0 | 0 | 1 |
1 | 1 | 0 |
1 | 1 | 1 |
0 | 0 | 0 |