Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <queue>
- using namespace std;
- struct policko
- {
- int radek;
- int sloupec;
- int tah;
- };
- int main()
- {
- int rozmer, radek, sloupec;
- queue<policko> fronta;
- cin >> rozmer;
- int ** sachovnice = new int * [rozmer];
- int a[2], b[2], c[2], d[2], e[2];
- for(int i = 0; i < rozmer; i++)
- {
- sachovnice[i] = new int [rozmer];
- for(int n = 0; n < rozmer; n++)
- {
- sachovnice[i][n] = 1;
- }
- }
- cin >> a[0];
- cin >> a[1];
- cin >> b[0];
- cin >> b[1];
- cin >> c[0];
- cin >> c[1];
- cin >> d[0];
- cin >> d[1];
- cin >> e[0];
- cin >> e[1];
- for(int i = 1; i <= 5; i++)
- {
- cin >> radek;
- cin >> sloupec;
- sachovnice[radek][sloupec] = i * -1;
- }
- int * acko = new int[5];
- int * bcko = new int[5];
- int * ccko = new int[5];
- int * dcko = new int[5];
- int * ecko = new int[5];
- int * pole;
- int * tahy = new int[5];
- int index, kun, tah;
- policko tmp = {e[0], e[1], 0};
- fronta.push(tmp);
- kun = 19;
- tahy = ecko;
- while(!fronta.empty())
- {
- radek = fronta.front().radek;
- sloupec = fronta.front().sloupec;
- tah = fronta.front().tah;
- sachovnice[radek][sloupec] *= kun;
- if(sachovnice[radek][sloupec] < 0)
- {
- index = sachovnice[radek][sloupec] * -1;
- if(index % 7 == 0) index /= 7;
- if(index % 11 == 0) index /= 11;
- if(index % 13 == 0) index /= 13;
- if(index % 17 == 0) index /= 17;
- if(index % 19 == 0) index /= 19;
- index -= 1;
- tahy[index] = tah;
- }
- if(radek + 2 < rozmer && sloupec + 1 < rozmer && sachovnice[radek+2][sloupec+1] % kun != 0)
- {
- tmp = {radek+2, sloupec+1, tah+1};
- fronta.push(tmp);
- }
- if(radek + 2 < rozmer && sloupec - 1 >= 0 && sachovnice[radek+2][sloupec-1] % kun != 0)
- {
- tmp = {radek+2, sloupec-1, tah+1};
- fronta.push(tmp);
- }
- if(radek - 2 >= 0 && sloupec + 1 < rozmer && sachovnice[radek-2][sloupec+1] % kun != 0)
- {
- tmp = {radek-2, sloupec+1, tah+1};
- fronta.push(tmp);
- }
- if(radek - 2 >= 0 && sloupec - 1 >= 0 && sachovnice[radek-2][sloupec-1] % kun != 0)
- {
- tmp = {radek-2, sloupec-1, tah+1};
- fronta.push(tmp);
- }
- if(radek +1 < rozmer && sloupec + 2 < rozmer && sachovnice[radek+1][sloupec+2] % kun != 0)
- {
- tmp = {radek+1, sloupec+2, tah+1};
- fronta.push(tmp);
- }
- if(radek -1 >= 0 && sloupec + 2 < rozmer && sachovnice[radek-1][sloupec+2] % kun != 0)
- {
- tmp = {radek-1, sloupec+2, tah+1};
- fronta.push(tmp);
- }
- if(radek +1 < rozmer && sloupec - 2 >= 0 && sachovnice[radek+1][sloupec-2] % kun != 0)
- {
- tmp = {radek+1, sloupec-2, tah+1};
- fronta.push(tmp);
- }
- if(radek -1 >= 0 && sloupec - 2 >= 0 && sachovnice[radek-1][sloupec-2] % kun != 0)
- {
- tmp = {radek-1, sloupec-2, tah+1};
- fronta.push(tmp);
- }
- fronta.pop();
- }
- cout << endl << "prvni: ";
- for(int i = 0; i < 5; i++)
- {
- cout << acko[i] << " ";
- }
- cout << endl << "druhy: ";
- for(int i = 0; i < 5; i++)
- {
- cout << bcko[i] << " ";
- }
- cout << endl << "treti: ";
- for(int i = 0; i < 5; i++)
- {
- cout << ccko[i] << " ";
- }
- cout << endl << "ctvrty: ";
- for(int i = 0; i < 5; i++)
- {
- cout << dcko[i] << " ";
- }
- cout << endl << "paty: ";
- for(int i = 0; i < 5; i++)
- {
- cout << ecko[i] << " ";
- }
- cout << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement