#include #include using namespace std; bool InMatrice(int x, int y) { return (x >= 1 && x <= 8 && y >= 1 && y <= 8); } class PiesaSah{ private: int linie; char coloana; public: PiesaSah(int l=0, char c =' '){ linie=l; coloana=c; } static int Distanta(PiesaSah p1, PiesaSah p2){ return max(abs(p1.linie-p2.linie), abs(p1.coloana-p2.coloana)); } bool operator<( const PiesaSah& other) const{ PiesaSah origine(1,'A'); int d1= Distanta(*this,origine); int d2= Distanta(other, origine); if(d1==d2){ if(this->linie!=other.linie) return this->liniecoloana>other.coloana; } return d1,vector> get_directie(){ vector v1, v2; return make_pair(v1,v2); } }; class Turn: public PiesaSah{ public: Turn(int l, char c): PiesaSah(l,c){} pair,vector> get_directie(){ vector dx_turn={1,0,-1,0}; vector dy_turn={0,1,0,-1}; return make_pair(dx_turn,dy_turn); } }; class Regina: public PiesaSah{ public: Regina(int l, char c): PiesaSah(l,c){} pair,vector> get_directie(){ vector dx_regina={1,0,-1,0,1,-1,1,-1}; vector dy_regina={0,1,0,-1,1,-1,-1,1}; return make_pair(dx_regina, dy_regina); } }; class Nebun: public PiesaSah{ public: Nebun(int l, char c): PiesaSah(l,c){} pair,vector> get_directie(){ vector dx_nebun={1,-1,1,-1}; vector dy_nebun={1,-1,-1,1}; return make_pair(dx_nebun, dy_nebun); } }; PiesaSah* tabla[9][9]; int nr_atacatori[9][9]; int main() { int n; cin>>n; for(int i=0;i<9;i++) for(int j=0;j<9;j++) tabla[i][j]=NULL; for(int i=0;i>cod>>coloana>>linie; if(cod=='R'){ tabla[linie][coloana - 'A'+1]= new Regina(linie,coloana); }else if(cod == 'T'){ tabla[linie][coloana - 'A'+1]= new Turn(linie,coloana); }else if(cod=='N'){ tabla[linie][coloana - 'A'+1]= new Nebun(linie,coloana); } } int maxElem=0; char maxcol; for(int j=1;j<9;j++){ int cntPiese=0; for(int i=1;i<9;i++){ if(tabla[i][j]!=NULL){ cntPiese += 1; } } if(cntPiese>maxElem){ maxElem=cntPiese; maxcol='A'+j-1;//conversia din numar in litera } } cout<, vector> directie = tabla[i][j]->get_directie(); vector dx = directie.first; vector dy = directie.second; for(k=0;knrmax_atacatori){ nrmax_atacatori=nr_atacatori[i][j]; i_max=i; j_max=j; } } cout<