Cerința
O tablă de șah se reprezintă ca o matrice cu n
linii și n
coloane în care pozițiile libere au valoarea 0
, iar pozițiile ocupate de piese sunt marcate prin valoarea 1
.
Să se determine numărul maxim de piese pe care le poate lua un pion care pleacă de pe prima linie a tablei și vrea să ajungă pe ultima linie. Pionul poate porni din orice poziție de pe prima linie. Pe prima linie nu se află alte piese.
Pionul aflat în pozitia i,j
se poate deplasa astfel:
- în poziția
i+1, j
dacă este liberă - în poziția
i+1, j-1
dacă este o piesă în această poziție - în poziția
i+1, j+1
dacă este o piesă în această poziție
Date de intrare
Programul citește de la tastatură numărul n
, reprezentând dimensiunea tablei, iar apoi n*n
numere 0
sau 1
cu semnificația din enunț.
Date de ieșire
Programul va afișa pe ecran numărul x
, reprezentând numărul maxim de piese pe care le poate lua pionul.
Restricții și precizări
1 ≤ n ≤ 100
Exemplu
Intrare
5 0 0 0 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1
Ieșire
4
Explicație
Pionul poate lua maximum 4
piese, pe traseul (1,1) (2,2) (3,3) (4,4) (5,5)
. Acest traseu nu este unicul pe care pionul poate lua 4
piese.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema pion1:
#include <iostream>
using namespace std;
int n,A[101][101],C[101][101],x;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>A[i][j];
for(int i=2;i<=n;i++)
for(int j=1;j<=n;j++)
if(A[i][j]==0) C[i][j]=C[i-1][j];
else if(C[i-1][j-1]>C[i-1][j+1]) C[i][j]=C[i-1][j-1]+1;
else C[i][j]=C[i-1][j+1]+1;
for(int j=1;j<=n;j++)
if(C[n][j]>x)
x=C[n][j];
cout<<x;
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #3245 pion1
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #3245 pion1 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!