Advertisement
destern

Untitled

Oct 28th, 2021
838
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <math.h>
  4. using namespace std;
  5.  
  6. void EraseEveryOdd(vector<int>& v) {
  7.     if ((v.size() % 2) > 0)
  8.         v.pop_back();
  9.  
  10.     auto size = v.size() / 2;
  11.  
  12.     for (size_t i = 0; i < size; ++i)
  13.         v.erase(v.begin() + i);
  14. }
  15.  
  16. void EraseEveryEven(vector<int>& v) {
  17.     if ((v.size() % 2) == 0)
  18.         v.pop_back();
  19.  
  20.     auto size = (v.size() / 2) + 1;
  21.  
  22.     for (size_t i = 1; i < size; ++i)
  23.         v.erase(v.begin() + i);
  24. }
  25.  
  26. int main()
  27. {
  28.     int numbersCount, neededNumber;
  29.     cin >> numbersCount >> neededNumber;
  30.     vector<int> numbers;
  31.     for (int i = 0; i < numbersCount; ++i) {
  32.         numbers.push_back(i + 1);
  33.     }
  34.     int stepsCount = 0;
  35.     float tempNumbersCount = numbersCount;
  36.     while (numbers.size() != 1) {
  37.         vector<int> temp = numbers;
  38.         EraseEveryEven(temp);
  39.         bool trueDecision = false;
  40.         for (int i = 0; i < temp.size(); ++i) {
  41.             if (temp[i] == neededNumber)
  42.                 trueDecision = true;
  43.         }
  44.         if (trueDecision) {
  45.             EraseEveryEven(numbers);
  46.             cout << "2" << endl;
  47.         }
  48.         else {
  49.             EraseEveryOdd(numbers);
  50.             cout << "1" << endl;
  51.         }
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement