Ограничение по времени: 1 секунда
Ограничение по памяти: 256 мегабайт
Поле в игре «Речной бой» представляет собой полоску длины n клеток и шириной в одну клетку. Где-то на поле расположен корабль из k клеток (k < n). Какое наименьшее число выстрелов необходимо, чтобы гарантированно потопить корабль? После каждого выстрела сообщается его результат: «мимо», «ранен» или «убит».
Ответ
#include
#include
using namespace std;
int main()
{
int n; cin >> n;
vector
vector
vector
for (int i = 0; i < n; i++) {
cin >> a[i];
for (int j = 0; j < b[a[i]].size(); j++) {
c[b[a[i]][j]] = 1;
}
}
for (int i = 0; i < 10; i++) {
bool ok = true;
for (int j = 0; j < b[i].size(); j++) {
if (!c[b[i][j]]) ok = false;
}
if (ok) cout << i << ‘\n‘;
}
return 0;
}