Pagini recente » Cod sursa (job #2650614) | Cod sursa (job #1659772) | Cod sursa (job #1343228) | Cod sursa (job #3192993) | Cod sursa (job #2420010)
#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;
}