MeehoweCK

Untitled

Oct 19th, 2020
2,125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. // wersja debbugująca
  2. #include <iostream>
  3. #include <vector>
  4.  
  5. using namespace std;
  6.  
  7. unsigned kto_na_prawo(unsigned nr_osoby, unsigned* osoby)
  8. {
  9.     return osoby[nr_osoby - 1];
  10. }
  11.  
  12. unsigned znajdz_pierwsza(unsigned* osoby)
  13. {
  14.     for(int i = 0; true; ++i)
  15.         if(osoby[i] != 0)
  16.             return i + 1;
  17. }
  18.  
  19. void wypisz_wszystkich(unsigned* osoby, unsigned n)
  20. {
  21.     cout << "Wszyscy: ";
  22.     for(unsigned i = 0; i < n; ++i)
  23.         cout << osoby[i] << '\t';
  24.     cout << endl;
  25. }
  26.  
  27. void wypisz_wektor(vector<unsigned> wektor)
  28. {
  29.     unsigned n = wektor.size();
  30.     for(unsigned i = 0; i < n; ++i)
  31.         cout << wektor[i] << '\t';
  32.     cout << endl;
  33. }
  34.  
  35. int main()
  36. {
  37.     unsigned n;
  38.     cin >> n;
  39.  
  40.     // 1.
  41.     unsigned osoby[n];
  42.     for(unsigned i = 0; i < n; ++i)
  43.         cin >> osoby[i];
  44.  
  45.     // 2.
  46.     vector<unsigned> stol;
  47.  
  48.     unsigned usadzeni = 0, x, liczba_osob, stoly = 0;
  49.     // 3.
  50.     while(usadzeni < n)
  51.     {
  52.         stol.clear();
  53.         stol.push_back(znajdz_pierwsza(osoby));
  54.  
  55.         cout << "Pierwsza osoba przy stole: " << stol[0] << endl;
  56.  
  57.         x = kto_na_prawo(stol[0], osoby);
  58.  
  59.         while(x != stol[0])
  60.         {
  61.             stol.push_back(x);
  62.             x = kto_na_prawo(stol[stol.size() - 1], osoby);
  63.         }
  64.  
  65.         // 4.
  66.         liczba_osob = stol.size();
  67.  
  68.         cout << "Stol nr " << stoly + 1 << ": ";
  69.         wypisz_wektor(stol);
  70.  
  71.         for(unsigned i = 0; i < liczba_osob; ++i)
  72.             osoby[stol[i] - 1] = 0;
  73.  
  74.         wypisz_wszystkich(osoby, n);
  75.  
  76.         // 5.
  77.         ++stoly;
  78.  
  79.         // 6.
  80.         usadzeni += liczba_osob;
  81.     }
  82.     cout << stoly << endl;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment