#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <fstream>
using namespace std;
int tab[1'000'007];
int main()
{
ios::sync_with_stdio(0);
cin.tie(nullptr);
string k,w, wynik;
int n, t;
cin >> k>>n >> t;
while (t--)
{
int b = 0, a = 0, p=0;
cin >> w;
while (true)
{
char ak, cw;
if (b == a)
{
cw= (w[p] == '1' ? 'P' : 'K');
p++;
}
else if (b > a)
{
if (k[0] == 'B')
{
cw = 'N';
}
else
{
cw = 'K';
}
}
else
{
if (k[0] == 'A')
{
cw = 'N';
}
else
{
cw = 'K';
}
}
cout <<cw;
cout.flush();
cin >> ak;
if (cw == 'P' and ak == 'K')
{
if (k[0] == 'B')
b++;
else
a++;
wynik += (ak == 'p' ? '1' : '0');
cout << wynik;
}
else if (cw == 'K' and ak == 'P')
{
if (k[0] == 'B')
a++;
else
b++;
wynik += (ak == 'p' ? '1' : '0');
}
else if (cw == 'N' and ak == 'K')
{
if (k[0] == 'B')
a++;
else
b++;
}
else if (cw == 'K' and ak == 'N')
{
if (k[0] == 'B')
b++;
else
a++;
}
if (wynik.size() == n or p==wynik.size()-1)
{
cout << "! " << wynik;
cout.flush();
break;
}
}
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | #include <iostream> #include <algorithm> #include <string> #include <vector> #include <fstream> using namespace std; int tab[1'000'007]; int main() { ios::sync_with_stdio(0); cin.tie(nullptr); string k,w, wynik; int n, t; cin >> k>>n >> t; while (t--) { int b = 0, a = 0, p=0; cin >> w; while (true) { char ak, cw; if (b == a) { cw= (w[p] == '1' ? 'P' : 'K'); p++; } else if (b > a) { if (k[0] == 'B') { cw = 'N'; } else { cw = 'K'; } } else { if (k[0] == 'A') { cw = 'N'; } else { cw = 'K'; } } cout <<cw; cout.flush(); cin >> ak; if (cw == 'P' and ak == 'K') { if (k[0] == 'B') b++; else a++; wynik += (ak == 'p' ? '1' : '0'); cout << wynik; } else if (cw == 'K' and ak == 'P') { if (k[0] == 'B') a++; else b++; wynik += (ak == 'p' ? '1' : '0'); } else if (cw == 'N' and ak == 'K') { if (k[0] == 'B') a++; else b++; } else if (cw == 'K' and ak == 'N') { if (k[0] == 'B') b++; else a++; } if (wynik.size() == n or p==wynik.size()-1) { cout << "! " << wynik; cout.flush(); break; } } } } |
English