Cod sursa(job #2420010)

Utilizator Rufus007Marincia Catalin Rufus007 Data 10 mai 2019 09:15:32
Problema Barbar Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 2.04 kb
#include<iostream>
#include<fstream>

std::ifstream fin("barbar.in");
std::ofstream fout("barbar.out");

int main()
{
//NMAX-1 este dimensiunea maxima pe care o poate lua R si C
    const int NMAX=1001;
    int R,C,harta[NMAX][NMAX];
    pair<int,int>pstart,pfinish;
    //pstart - coordonatele pozitiei de start ale lui Paftenie
    // pfinish - iesirea din temnita
//R este numarul de linii ale matricei/temnitei
//C este numarul de coloane ale matrice/temnitei
// harta[][] este matricea asociata temnitei
int dx[]={-1,0,1,0}, // coordonata linie
    dy[]={0,1,0,-1}; // coordonata coloana



    fin>>R>>C;

    for(int i=0; i<R; ++i)
        for(int j=0; j<C; ++j)
        {
            char litera; //litera folosita la citirea si interpretarea caracterelor
            fin>>litera;
// Notatii:
// . -o celula libera -> harta[i][j] = 0
// * -perete -> harta[i][j] = -1
// D -dragon ->harta[i][j]= -2
// I -punctul de plecare al lui Paftenie ->harta[i][j] = 0, pstart.first=i,pstart.second=j
// litera O -o iesire din temnita ->harta[i][j]= -3
            switch(litera)
            {
            case '.':
                harta[i][j]=0,break;
            case '*':
                harta[i][j]=-1,break;
            case 'D':
                harta[i][j]=-2,break;
            case 'I':
                harta[i][j]=0,pstart.first=i,pstart.second=j,break;
            case 'O':
              //  harta[i][j]=-3,break;
              pfinish.first=i,pfinish.second=j,break;
            default:
                break;
            }
        }


    /*
    IDEI:

    1.Algoritm de fill initial in care se memoreaza intr-o matrice
    toate distantele de la fiecare celula libera la un dragon apoi o
    functie ce returneaza pozitia dintre vecini cea mai avantajoasa

    AVANTAJE:
    Rapiditate in accesarea unor posibile pozitii favorabile

    DEZAVANTAJE:
    Consum mare de memorie **Nota memoria e echivalenta cu un array de 16 mil de elemente

    */

    fin.close();
    fout.close();
    return 0;
}