Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <string>
- #include <iostream>
- #include <queue>
- #include <utility>
- using namespace std;
- int n=8;
- int sqrn=n*n;
- int doska[8][8]={};
- int Dx[]={1,1,2,2,-1,-1,-2,-2};
- int Dy[]={-2,2,-1,1,-2,2,-1,1};
- bool q=false;
- int ii,jj,ik,jk,p,k,w;
- void go(int i,int x, int y, bool &q){
- int k=-1,p,s,ii;
- bool q1=false;
- if (q) exit;
- while ((!q1)&&(k<8)) {
- k++;
- q1=false;
- p=x+Dx[k];
- s=y+Dy[k];
- if((0<=p)&&(p<n)&&(0<=s)&&(s<n)&&(doska[p][s]==0)) {
- doska[p][s]=i;
- if (!(p==ik&&s==jk)) {
- // cout<<i<<" ";
- go(i+1,p,s,q1);
- if (!q1) doska[p][s]=0;
- }
- else {
- q1=true;
- }
- }
- }
- q=q1;
- // for (int i=0;i<n;i++){
- // cout<<endl;
- // for (int j=0;j<n;j++) cout<<doska[i][j]<<' ';
- // }
- // cin>>ii;
- }
- int main(){
- queue<pair<int, int> > a;
- string s;
- cin>>s;
- ii=s[0]-'A', jj=s[1]-'1';
- cin>>s;
- ik=s[0]-'A', jk=s[1]-'1';
- cin>>s;
- for (int i=0;i<s.size()/2;i++)doska[s[2*i]-'A'][s[2*i+1]-'1']=-1;
- doska[ii][jj]=1;
- a.push(pair<int, int>(ii, jj));
- int i = 1;
- bool boo = true;
- while (!a.empty() && boo) {
- ii=a.front().first;
- jj=a.front().second;
- a.pop();
- for (int k=0;k<8;k++){
- p=ii+Dx[k];
- w=jj+Dy[k];
- if (p
- if((0<=p)&&(p<n)&&(0<=w)&&(w<n)&&(doska[p][w]==0)) {
- a.push(pair<int, int>(p, w));
- doska[p][w] = ++ i;
- }
- }
- }
- for (int i = 0; i < 8; ++ i) {
- for (int j = 0; j < 8; ++ j) {
- cout << doska[i][j] << " ";
- }
- cout << "\n";
- }
- return 0;
- for (int i=0;i<n;i++){
- cout<<endl;
- for (int j=0;j<n;j++) cout<<doska[i][j]<<' ';
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement