Advertisement
adwas33

Untitled

Oct 24th, 2019
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <utility>
  3. #include <vector>
  4. #include <algorithm>
  5. using namespace std;
  6. ///us
  7. pair<int,int> replace(vector<pair<int,int>>wszystkie_wierze,pair<int,int>&aktualna_wierza,int wielkosc) //punkt w którym będzie
  8. {
  9.     for(int i=0;i<wielkosc;i++)
  10.     {
  11.        if(wszystkie_wierze[i].second==i)
  12.        {
  13.            aktualna_wierza.second=wszystkie_wierze[i].second;
  14.             return aktualna_wierza;
  15.     }
  16.     }
  17. return aktualna_wierza;
  18. }
  19. bool czy_stoi_na_lini(vector<pair<int,int>>wszystkie_wierze,pair<int,int>&aktualna_wierza)
  20. {
  21.     for(int i=0;i<wszystkie_wierze.size();i++)
  22.     {
  23.         if(wszystkie_wierze[i].first==aktualna_wierza.first||wszystkie_wierze[i].second==aktualna_wierza.second)
  24.            { aktualna_wierza.first=wszystkie_wierze[i].first;
  25.             aktualna_wierza.second=wszystkie_wierze[i].second;
  26.             swap(wszystkie_wierze[i],wszystkie_wierze[wszystkie_wierze.size()]);
  27.             wszystkie_wierze.pop_back();
  28.  
  29.             return true;
  30.     }
  31.     }
  32. return false;
  33. }
  34. int main()
  35. {   int liczba_ruchow;
  36.     int liczba_wierz;
  37.     int wielosc_szachownicy;
  38.     cin>>wielosc_szachownicy;
  39.     cin>>liczba_wierz;
  40.     int aktualna_liczba_wierz=liczba_wierz;
  41.     vector<pair<int,int>>pozycja_wierzy(aktualna_liczba_wierz);
  42. for(int i=0;i<aktualna_liczba_wierz;i++)
  43. {
  44.     cin>>pozycja_wierzy[i].first;
  45.     cin>>pozycja_wierzy[i].second;
  46. }
  47. sort(&pozycja_wierzy[0].second,&pozycja_wierzy[aktualna_liczba_wierz].second);
  48.  
  49. pair<int,int>wierza_startowa=pozycja_wierzy[0];
  50.  
  51.     while(aktualna_liczba_wierz>=0)
  52.     {
  53.         if(czy_stoi_na_lini(pozycja_wierzy,wierza_startowa))
  54.         {
  55.             aktualna_liczba_wierz--;
  56.             liczba_ruchow++;
  57.         }
  58.         else {liczba_ruchow++;
  59.             replace(pozycja_wierzy,wierza_startowa,wielosc_szachownicy);
  60.         }
  61.  
  62.     }
  63.     cout << liczba_ruchow << endl;
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement