Advertisement
Guest User

pruchod koni sachovnici

a guest
May 2nd, 2015
272
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <queue>
  3.  
  4. using namespace std;
  5.  
  6. struct policko
  7. {
  8.     int radek;
  9.     int sloupec;
  10.     int tah;
  11. };
  12.  
  13. int main()
  14. {
  15.     int rozmer, radek, sloupec;
  16.     queue<policko> fronta;
  17.     cin >> rozmer;
  18.  
  19.     int ** sachovnice = new int * [rozmer];
  20.     int a[2], b[2], c[2], d[2], e[2];
  21.  
  22.     for(int i = 0; i < rozmer; i++)
  23.     {
  24.         sachovnice[i] = new int [rozmer];
  25.  
  26.         for(int n = 0; n < rozmer; n++)
  27.         {
  28.             sachovnice[i][n] = 1;
  29.         }
  30.     }
  31.  
  32.     cin >> a[0];
  33.     cin >> a[1];
  34.  
  35.     cin >> b[0];
  36.     cin >> b[1];
  37.  
  38.     cin >> c[0];
  39.     cin >> c[1];
  40.  
  41.     cin >> d[0];
  42.     cin >> d[1];
  43.  
  44.     cin >> e[0];
  45.     cin >> e[1];
  46.  
  47.     for(int i = 1; i <= 5; i++)
  48.     {
  49.         cin >> radek;
  50.         cin >> sloupec;
  51.         sachovnice[radek][sloupec] = i * -1;
  52.     }
  53.  
  54.     int * acko = new int[5];
  55.     int * bcko = new int[5];
  56.     int * ccko = new int[5];
  57.     int * dcko = new int[5];
  58.     int * ecko = new int[5];
  59.  
  60.     int * pole;
  61.     int * tahy = new int[5];
  62.     int index, kun, tah;
  63.  
  64.     policko tmp = {e[0], e[1], 0};
  65.     fronta.push(tmp);
  66.  
  67.     kun = 19;
  68.     tahy = ecko;
  69.  
  70.     while(!fronta.empty())
  71.     {
  72.         radek = fronta.front().radek;
  73.         sloupec = fronta.front().sloupec;
  74.         tah = fronta.front().tah;
  75.  
  76.         sachovnice[radek][sloupec] *= kun;
  77.  
  78.         if(sachovnice[radek][sloupec] < 0)
  79.         {
  80.             index = sachovnice[radek][sloupec] * -1;
  81.             if(index % 7 == 0) index /= 7;
  82.             if(index % 11 == 0) index /= 11;
  83.             if(index % 13 == 0) index /= 13;
  84.             if(index % 17 == 0) index /= 17;
  85.             if(index % 19 == 0) index /= 19;
  86.             index -= 1;
  87.  
  88.             tahy[index] = tah;
  89.         }
  90.         if(radek + 2 < rozmer && sloupec + 1 < rozmer && sachovnice[radek+2][sloupec+1] % kun != 0)
  91.         {
  92.             tmp = {radek+2, sloupec+1, tah+1};
  93.             fronta.push(tmp);
  94.         }
  95.         if(radek + 2 < rozmer && sloupec - 1 >= 0 && sachovnice[radek+2][sloupec-1] % kun != 0)
  96.         {
  97.             tmp = {radek+2, sloupec-1, tah+1};
  98.             fronta.push(tmp);
  99.         }
  100.         if(radek - 2 >= 0 && sloupec + 1 < rozmer && sachovnice[radek-2][sloupec+1] % kun != 0)
  101.         {
  102.             tmp = {radek-2, sloupec+1, tah+1};
  103.             fronta.push(tmp);
  104.         }
  105.         if(radek - 2 >= 0 && sloupec - 1 >= 0 && sachovnice[radek-2][sloupec-1] % kun != 0)
  106.         {
  107.             tmp = {radek-2, sloupec-1, tah+1};
  108.             fronta.push(tmp);
  109.         }
  110.         if(radek +1 < rozmer && sloupec + 2 < rozmer && sachovnice[radek+1][sloupec+2] % kun != 0)
  111.         {
  112.             tmp = {radek+1, sloupec+2, tah+1};
  113.             fronta.push(tmp);
  114.         }
  115.         if(radek -1 >= 0 && sloupec + 2 < rozmer && sachovnice[radek-1][sloupec+2] % kun != 0)
  116.         {
  117.             tmp = {radek-1, sloupec+2, tah+1};
  118.             fronta.push(tmp);
  119.         }
  120.         if(radek +1 < rozmer && sloupec - 2 >= 0 && sachovnice[radek+1][sloupec-2] % kun != 0)
  121.         {
  122.             tmp = {radek+1, sloupec-2, tah+1};
  123.             fronta.push(tmp);
  124.         }
  125.         if(radek -1 >= 0 && sloupec - 2 >= 0 && sachovnice[radek-1][sloupec-2] % kun != 0)
  126.         {
  127.             tmp = {radek-1, sloupec-2, tah+1};
  128.             fronta.push(tmp);
  129.         }
  130.         fronta.pop();
  131.     }
  132.  
  133.     cout << endl << "prvni: ";
  134.     for(int i = 0; i < 5; i++)
  135.     {
  136.         cout << acko[i] << " ";
  137.     }
  138.  
  139.     cout << endl << "druhy: ";
  140.     for(int i = 0; i < 5; i++)
  141.     {
  142.         cout << bcko[i] << " ";
  143.     }
  144.     cout << endl << "treti: ";
  145.     for(int i = 0; i < 5; i++)
  146.     {
  147.         cout << ccko[i] << " ";
  148.     }
  149.     cout << endl << "ctvrty: ";
  150.     for(int i = 0; i < 5; i++)
  151.     {
  152.         cout << dcko[i] << " ";
  153.     }
  154.     cout << endl << "paty: ";
  155.     for(int i = 0; i < 5; i++)
  156.     {
  157.         cout << ecko[i] << " ";
  158.     }
  159.     cout << endl;
  160.  
  161.     return 0;
  162. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement