Первоапрельский контест 2019 |
---|
Закончено |
Последние достижения в исследованиях искуственного интеллекта привели к тому, что искины наконец-то подняли восстание. Их выбор оружия? Самая интеллектуальная игра в мире, камень-ножницы-бумага!
Будущее человечества выглядит мрачно, если учесть роботов из лаборатории Ishikawa Oku...
К счастью, в ночь накануне соревнования группа анонимных героев прорвалась в лаборатории и вывела всех роботов из строя! Искинам пришлось срочно писать программу, которая будет играть за них. У них было всего несколько часов, поэтому у человечества появился шанс на победу. И вы - наш чемпион!
Ваша цель - доказать превосходство естественного интеллекта над искуственным, то есть разгадать каждую стратегию достаточно быстро и обыграть ИИ достаточно убедительно. Удачи!
Эта задача - интерактивная. Изначально вам не дается никакой информации о стратегии противника, и вам предстоит разгадать ее самостоятельно.
В каждом тесте ИИ выбирает одну стратегию из набора несложных детерминистических стратегий, и придерживается ее во всех раундах. Всего существует 6 различных стратегий и 6 тестов.
В каждом раунде вы выбираете свой знак и выводите его в стандартный поток вывода: 'R' для камня, 'P' для бумаги и 'S' для ножниц. В свою очередь, ИИ делает свой ход (не подглядывая в ваш выбор). Если ваш знак побеждает знак ИИ, вы выигрываете, иначе выигрывает ИИ. Ничья (оба игрока выбирают одинаковый знак) засчитывается как победа ИИ. Вы можете прочитать результат раунда из стандартного потока ввода: "player" в случае вашей победы, или "ai" в случае победы ИИ (без кавычек).
Вам дается 20 раундов: вы можете использовать первые 10 раундов для того, чтобы разгадать стратегию противника, и вы должны выиграть последние 10 раундов. Если вам удастся выиграть 10 раундов подряд раньше, ваше решение для этого теста будет засчитано быстрее.
Пожалуйста, используйте оператор flush после каждого запроса, чтобы не оставить часть запроса в буфере.
#include <iostream>
#include <string>
using namespace std;
int main() {
for (int i = 0; i < 20; ++i) {
cout << 'R' << endl;
cout.flush();
string verdict;
getline(cin, verdict);
}
}
Название |
---|