Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream f("neo.in");
- ofstream g("neo.out");
- int n;
- int mat[105][105];
- int neol,neoc;
- int nrpas;
- int v[105];
- int clin,ccol,lin,col,energy,pasi,ok;
- void citire() {
- f >> n;
- f>> neol>>neoc;
- f >> nrpas;
- for (int i=1;i<=nrpas;i++) {
- f >> v[i];
- }
- for (int i=1;i<=n;i++) {
- for (int j=1;j<=n;j++) {
- f >> mat[i][j];
- }
- }
- }
- bool verifpericol1() {
- col=n-1;
- while (col>0) {
- ok=0;
- clin=1;
- ccol=col;
- while (ccol>=1) {
- if (mat[clin][ccol]>0) {
- ok=1;
- }
- if (clin==neol && ccol==neoc) {
- return 1;
- }
- ccol--;
- clin++;
- }
- col--;
- if (ok==0) {
- return 0;
- }
- }
- return 1;
- }
- bool verifpericol2() {
- lin=2;
- while (lin<n+1) {
- ok=0;
- clin=lin;
- ccol=n;
- while (clin<=n) {
- if (mat[clin][ccol]>0) {
- ok=1;
- }
- if (clin==neol && ccol==neoc) {
- return 1;
- }
- ccol--;
- clin++;
- }
- lin++;
- if (ok==0) {
- return 0;
- }
- }
- return 1;
- }
- int main()
- {
- citire();
- if (neol+neoc<=n+1) {
- if (verifpericol1()==0) {
- g << "PERICOL";
- }
- else {
- g << "TRECERE LIBERA";
- lin=neol;
- col=neoc;
- for (int k=1;k<=nrpas;k++) {
- pasi = v[k];
- if (k%2==1) {
- while (pasi!=0) {
- energy += mat[lin][col];
- lin++;
- pasi--;
- if (col+lin==n+1) {
- ok = 1;
- break;
- }
- }
- }
- else {
- while (pasi!=0) {
- energy += mat[lin][col];
- col++;
- pasi--;
- if (col+lin==n+1) {
- ok = 1;
- break;
- }
- }
- }
- if (col+lin==n+1) {
- ok = 1;
- break;
- }
- }
- if (ok==1) {
- g << '\n'<<"NEO A AJUNS LA DIAGONALA SECUNDARA"<<'\n'<<energy;
- }
- else {
- g << '\n'<<"NEO NU A AJUNS LA DIAGONALA SECUNDARA";
- }
- }
- }
- else {
- if (verifpericol2()==0) {
- g << "PERICOL";
- }
- else {
- g << "TRECERE LIBERA";
- lin=neol;
- col=neoc;
- for (int k=1;k<=nrpas;k++) {
- pasi = v[k];
- if (k%2==1) {
- while (pasi!=0) {
- energy += mat[lin][col];
- lin--;
- pasi--;
- if (col+lin==n+1) {
- ok = 1;
- break;
- }
- }
- }
- else {
- while (pasi!=0) {
- energy += mat[lin][col];
- col--;
- pasi--;
- if (col+lin==n+1) {
- ok = 1;
- break;
- }
- }
- }
- if (col+lin==n+1) {
- ok = 1;
- break;
- }
- }
- if (ok==1) {
- g << '\n'<<"NEO A AJUNS LA DIAGONALA SECUNDARA"<<'\n'<<energy;
- }
- else {
- g << '\n'<<"NEO NU A AJUNS LA DIAGONALA SECUNDARA";
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement