Всё делать не буду, потому что долго..
Задание 1:
Условие
Варианты:
1) +1
2) *2
63 и больше - победа
1 куча - 5 камней, 2 куча S камней [1,57]
1 номер:
63 - 5 = 58
а) S ∈ [29.57]
Петя увеличивает бОльшую кучу в два раза и побеждает
б) Допустим, что Петя сглупил и сходил 29+1=30, тогда в s куче 30 камней. Ваня умножает эту кучу в два раза и в сумме получает 60+5=65 камней, и побеждает так.
2 номер:
Здесь нужно рисовать либо дерево, либо таблицу.
S = 27
"первая картинка"
3 номер делается точно также как и второй, просто от 27 прибавляй по очереди (28,29,30) пока не выйдет что Ваня побеждает либо с первого, либо со второго хода
#include <iostream>
#include <vector>
using namespace std;
template<class Iter, class T>
bool bin_s(const Iter begin, const Iter end, const T& val)
{
Iter i = std::lower_bound(begin, end, val);
if (i != end && !(val < *i))
return true;
else
return false;
}
int main()
{
size_t N, M;
cin >> N >> M;
vector<int> v1(N);
vector<int> v2(M);
for (size_t i = 0; i < N; ++i)
cin >> v1[i];
for (size_t i = 0; i < M; ++i)
{
cin >> v2[i];
if ( bin_s(v1.begin(), v1.end(), v2[i]) )
cout << "YES" << endl;
else
cout << "NO" << endl;
}
}