#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define st first
#define nd second
#define ld long double
vector<int> perm = {1205, 1191, 702, 1769, 1060, 469, 707, 1132, 165, 1196, 1214, 1030, 362, 1650, 1736, 1980, 1417, 1195, 644, 721, 1576, 1557,
421, 1702, 1186, 1983, 552, 1688, 972, 1397, 353, 913, 544, 1919, 1384, 115, 640, 1270, 202, 281, 67, 673, 1012, 1625, 1884, 1733, 107, 799,
1626, 271, 1269, 1312, 1659, 1613, 392, 203, 1387, 1442, 1505, 319, 388, 390, 142, 409, 2041, 741, 718, 34, 1547, 1775, 26, 782, 711, 1638,
83, 435, 543, 1896, 256, 1315, 1194, 1273, 1223, 1895, 963, 45, 699, 132, 874, 1474, 239, 1668, 2008, 1504, 1836, 556, 750, 1511, 1216, 909,
537, 620, 1515, 1024, 2045, 493, 1966, 1740, 639, 1710, 1979, 49, 62, 507, 191, 68, 1201, 688, 1152, 1097, 697, 1349, 1488, 800, 562, 1605,
1449, 613, 1595, 1126, 1083, 783, 1271, 497, 188, 1241, 1003, 1395, 1225, 1899, 1987, 458, 1681, 770, 1832, 495, 949, 1202, 733, 2037, 1378,
1050, 267, 533, 211, 162, 1039, 823, 1533, 79, 1767, 136, 1874, 357, 1346, 746, 277, 771, 415, 1870, 1685, 30, 920, 1961, 1873, 1088, 1305,
1859, 1105, 383, 1016, 1475, 347, 1643, 1782, 1338, 122, 946, 1484, 273, 1817, 464, 947, 1684, 1554, 209, 71, 705, 666, 779, 902, 1389, 61,
969, 1523, 818, 1845, 1513, 830, 1891, 2018, 1203, 1821, 280, 1089, 479, 404, 46, 1095, 1927, 394, 1396, 989, 84, 161, 1634, 104, 594, 77,
607, 503, 292, 1758, 957, 863, 2049, 652, 478, 1947, 765, 452, 1679, 1598, 465, 512, 1721, 1776, 1124, 1409, 2051, 2040, 896, 760, 858, 1854,
1206, 1486, 508, 59, 1287, 1458, 92, 1784, 1683, 1354, 678, 135, 1616, 1693, 1993, 1335, 96, 371, 1048, 1236, 1579, 1064, 1739, 240, 1527,
1058, 57, 1300, 938, 318, 1171, 1799, 1279, 1986, 1158, 52, 108, 918, 2027, 1125, 1780, 1067, 1463, 985, 190, 1258, 517, 597, 1989, 1455,
1224, 153, 174, 439, 1302, 1301, 514, 587, 1645, 848, 1531, 1606, 300, 1759, 1267, 2028, 140, 454, 1323, 1539, 2003, 1648, 1716, 286, 382,
738, 249, 1293, 610, 204, 412, 789, 1824, 1358, 643, 1825, 761, 370, 1973, 1670, 1161, 2033, 851, 1438, 1955, 1473, 1450, 1642, 1830, 283,
1107, 1756, 41, 715, 1798, 19, 854, 1290, 1718, 1962, 1867, 1479, 1239, 301, 812, 1629, 681, 1793, 1936, 1619, 1879, 850, 519, 1497, 861,
1800, 1311, 1367, 1974, 872, 311, 496, 172, 1833, 1501, 581, 17, 1931, 604, 889, 891, 253, 906, 802, 1478, 1820, 1023, 56, 1563, 475, 1038,
1783, 881, 1437, 2006, 641, 1268, 1615, 1074, 726, 337, 344, 413, 1937, 555, 1461, 1388, 1245, 1134, 483, 1117, 257, 97, 1181, 1316, 1441,
536, 295, 1587, 553, 1313, 1390, 1972, 484, 1462, 1434, 65, 491, 1715, 423, 1502, 836, 326, 622, 967, 510, 625, 1747, 1704, 1652, 910, 980,
1139, 725, 522, 2047, 463, 1964, 1489, 1102, 806, 1211, 147, 1129, 1109, 811, 473, 306, 272, 1082, 1546, 243, 650, 845, 1006, 661, 72, 1778,
275, 1804, 1425, 1487, 332, 1470, 346, 186, 1675, 252, 1157, 1839, 1468, 205, 1357, 1656, 1445, 225, 1465, 168, 1341, 1841, 1046, 998, 307,
1583, 1230, 317, 263, 1077, 391, 651, 1522, 1146, 890, 227, 1051, 1542, 844, 120, 1722, 1811, 262, 1991, 417, 470, 1143, 1641, 961, 826, 1078,
864, 975, 266, 710, 1790, 677, 833, 82, 1637, 1113, 1928, 1725, 159, 254, 1339, 534, 1013, 1166, 1556, 1043, 461, 437, 1592, 1816, 116, 1352,
792, 884, 368, 399, 38, 822, 131, 0, 842, 1303, 489, 814, 1902, 1655, 80, 1209, 1310, 451, 1253, 660, 617, 309, 76, 125, 1696, 1329, 285,
1520, 1165, 144, 831, 450, 1104, 563, 1320, 1120, 1448, 94, 573, 219, 1399, 320, 2044, 1559, 1548, 101, 1204, 1801, 605, 729, 1647, 1401, 1612,
1361, 1985, 453, 1137, 1788, 837, 476, 100, 1614, 1364, 171, 1826, 1047, 871, 1433, 1665, 1248, 1210, 550, 1750, 2035, 4, 674, 447, 15, 988,
1628, 813, 296, 1822, 1426, 226, 1162, 1472, 1249, 1872, 1494, 935, 198, 1608, 1451, 1627, 1422, 361, 1355, 626, 32, 509, 1894, 1996, 1847,
862, 1459, 1635, 457, 608, 1262, 548, 422, 228, 8, 769, 2043, 690, 723, 1819, 1752, 1662, 2011, 578, 1218, 1285, 689, 978, 1866, 1508, 1741,
925, 511, 330, 117, 1970, 546, 1197, 236, 121, 551, 1192, 1106, 1951, 2046, 991, 1929, 888, 113, 825, 631, 197, 206, 528, 1755, 232, 1049,
201, 9, 486, 438, 1860, 2019, 571, 687, 1265, 1610, 1099, 1275, 63, 278, 1093, 1108, 241, 1365, 1810, 821, 1977, 1073, 1447, 1967, 929, 1706,
914, 1086, 1944, 1226, 155, 89, 529, 1753, 164, 1179, 1796, 646, 1151, 363, 1516, 1543, 99, 567, 1743, 173, 37, 110, 175, 615, 298, 1814,
1921, 731, 916, 244, 1651, 1915, 2034, 1101, 427, 895, 1327, 679, 448, 1882, 1589, 547, 1325, 1381, 1831, 696, 445, 444, 1745, 1222, 839,
1079, 671, 1115, 146, 214, 1307, 338, 1018, 1159, 982, 1772, 234, 1794, 1585, 192, 977, 1593, 1689, 141, 1978, 735, 1907, 1059, 1982, 1284,
1909, 1534, 1602, 1324, 1597, 944, 359, 1574, 693, 1444, 1943, 1764, 356, 1886, 832, 1960, 231, 1948, 768, 921, 282, 1020, 649, 870, 246,
1667, 856, 287, 376, 1712, 342, 1815, 1890, 964, 1510, 384, 1254, 1036, 1297, 1735, 1215, 1232, 539, 208, 1439, 1386, 221, 680, 367, 1789,
499, 1868, 849, 1865, 1703, 333, 1904, 268, 374, 406, 1632, 260, 1714, 29, 329, 152, 185, 480, 700, 1041, 22, 410, 373, 1277, 430, 664,
1168, 1754, 1440, 532, 1347, 443, 838, 501, 1042, 1905, 1070, 732, 387, 103, 954, 658, 150, 736, 428, 1466, 1582, 1026, 11, 1370, 798, 1229,
1549, 1577, 1418, 1148, 1774, 1624, 351, 917, 1144, 847, 341, 1435, 804, 2016, 772, 434, 676, 1072, 720, 1402, 504, 635, 137, 1571, 619,
1424, 151, 1156, 621, 2005, 1889, 1601, 2015, 834, 1976, 1351, 220, 602, 1777, 1893, 1164, 2042, 1296, 903, 343, 1032, 1493, 1564, 176,
1169, 1085, 105, 1500, 1322, 494, 1452, 820, 592, 7, 1005, 290, 1528, 1630, 212, 764, 1343, 327, 1946, 775, 55, 1898, 400, 284, 405, 1640,
148, 612, 801, 1573, 1001, 1807, 691, 369, 27, 976, 1646, 258, 585, 999, 868, 2036, 933, 958, 269, 1173, 521, 970, 1578, 184, 114, 102,
13, 1069, 655, 570, 1231, 481, 1348, 1938, 1481, 468, 634, 1808, 261, 1029, 139, 1897, 1544, 2039, 93, 1737, 1932, 1180, 627, 515, 78,
1609, 14, 1566, 810, 565, 1292, 852, 2031, 953, 1558, 708, 1391, 129, 561, 1864, 1133, 672, 1963, 1914, 1869, 1011, 724, 47, 1054, 403,
1738, 358, 987, 530, 419, 31, 505, 645, 1009, 328, 1028, 302, 930, 446, 1193, 525, 1377, 843, 932, 2004, 1900, 1827, 996, 1975, 1331,
1251, 1155, 894, 393, 1620, 1918, 960, 1469, 196, 1913, 662, 425, 73, 524, 1742, 1843, 1584, 352, 1672, 1431, 426, 1172, 1686, 1673,
1015, 160, 971, 758, 1590, 1876, 130, 1631, 143, 1190, 1908, 1924, 1415, 828, 2000, 39, 936, 109, 712, 1025, 580, 1154, 1044, 355, 1698,
1720, 875, 919, 134, 1340, 742, 591, 2052, 968, 575, 983, 1263, 1958, 145, 887, 740, 777, 5, 588, 1674, 1456, 568, 986, 1840, 684, 498,
717, 156, 1242, 531, 177, 624, 1278, 659, 866, 1541, 1984, 1731, 1861, 926, 1941, 1240, 2009, 402, 1677, 1282, 569, 1795, 934, 1393, 927,
941, 1770, 1368, 1460, 485, 1997, 1004, 1140, 111, 1280, 293, 716, 183, 1071, 1999, 995, 310, 796, 1959, 1362, 51, 1276, 1114, 460, 1875,
1990, 614, 1200, 1519, 683, 1189, 1256, 35, 1091, 1119, 1366, 1498, 1700, 233, 1957, 609, 324, 1596, 1678, 1217, 900, 728, 1877, 706, 905,
1081, 1427, 1406, 1330, 1178, 75, 1420, 12, 247, 217, 1373, 334, 316, 1328, 1288, 255, 1135, 2013, 366, 127, 780, 1412, 1724, 1208, 1730,
1317, 1467, 2020, 943, 380, 1934, 1053, 1398, 1517, 50, 1709, 1992, 816, 2017, 885, 354, 1257, 1887, 1853, 1586, 1286, 667, 1565, 1496,
1453, 385, 81, 1243, 922, 16, 904, 1846, 1734, 1676, 630, 1345, 1567, 859, 629, 87, 1400, 535, 386, 1421, 749, 698, 1405, 776, 379, 1553,
1306, 538, 755, 1916, 1142, 2032, 335, 289, 950, 1926, 829, 1246, 948, 857, 1763, 1227, 336, 1443, 276, 656, 1569, 841, 923, 774, 1844,
593, 299, 545, 215, 623, 695, 178, 474, 1880, 1591, 1507, 1786, 1701, 490, 1360, 2038, 339, 577, 1314, 1066, 2026, 242, 1765, 1110, 1803,
993, 767, 1837, 1392, 1862, 763, 1283, 1729, 74, 1540, 704, 1509, 1802, 730, 513, 1570, 686, 10, 791, 1768, 1446, 1432, 18, 809, 877, 924,
1797, 675, 1639, 167, 1538, 766, 1123, 213, 795, 1965, 181, 149, 1622, 2010, 865, 1969, 1176, 653, 1014, 1092, 1849, 429, 1858, 288, 1100,
1084, 95, 1604, 1791, 520, 1183, 199, 853, 1885, 1532, 235, 745, 638, 1917, 1912, 994, 523, 1308, 163, 106, 395, 1617, 1657, 1033, 1127,
549, 1027, 1334, 1404, 1687, 1266, 1045, 647, 28, 1562, 1524, 1008, 1255, 58, 584, 867, 781, 1906, 1654, 572, 598, 1052, 633, 959, 1636,
1021, 1153, 1272, 1199, 694, 378, 200, 1705, 1805, 1525, 692, 1653, 1495, 36, 1419, 1252, 663, 1141, 1213, 1954, 576, 1848, 564, 1863, 1483,
360, 364, 778, 250, 808, 1061, 1666, 1529, 1950, 1953, 1766, 408, 1056, 939, 1304, 466, 713, 1408, 1198, 1207, 966, 245, 411, 601, 785,
431, 1838, 540, 70, 259, 908, 911, 1852, 542, 1423, 2029, 701, 1228, 1550, 824, 1007, 1834, 1002, 1111, 442, 1649, 737, 869, 1235, 558,
270, 54, 1746, 1379, 1019, 323, 898, 238, 1318, 827, 560, 1480, 179, 1482, 1010, 893, 1575, 1956, 414, 294, 1994, 1536, 1289, 1671, 2001,
628, 33, 1182, 1949, 229, 1359, 1299, 303, 739, 1090, 566, 274, 1713, 416, 1376, 632, 126, 1607, 1428, 962, 762, 1264, 420, 1298, 1719,
1057, 1760, 1476, 1098, 882, 1260, 312, 1512, 1333, 541, 1812, 459, 974, 1187, 1603, 44, 2, 589, 1259, 1374, 500, 345, 1618, 1535, 992,
748, 734, 952, 1823, 488, 1925, 325, 1017, 66, 1383, 1878, 1429, 1732, 1237, 424, 1942, 1835, 997, 1309, 436, 1920, 752, 657, 747, 945,
1319, 112, 1842, 1781, 2050, 279, 418, 1112, 1749, 315, 169, 751, 603, 815, 1561, 1167, 248, 1035, 1503, 138, 1726, 606, 1711, 648, 559,
1708, 727, 1492, 321, 1690, 1130, 1350, 1699, 685, 835, 331, 433, 23, 956, 754, 1430, 1170, 64, 1382, 787, 1471, 876, 1806, 1903, 756,
1380, 554, 43, 1184, 1850, 1, 1661, 1371, 1062, 1394, 154, 1828, 1506, 1930, 807, 1723, 1175, 1988, 1034, 1342, 1219, 1055, 942, 48, 350,
372, 1068, 1871, 265, 1855, 1212, 472, 879, 2023, 1751, 1888, 1568, 714, 1663, 1707, 1326, 308, 1901, 846, 1572, 1037, 1787, 1087, 981,
1234, 1600, 1076, 557, 1981, 1416, 794, 1669, 1103, 1883, 69, 216, 516, 1096, 86, 251, 313, 1413, 931, 1658, 1761, 878, 1411, 1771, 1552,
407, 1356, 1150, 703, 348, 1537, 984, 1075, 1623, 527, 218, 1410, 1160, 6, 1633, 899, 375, 305, 784, 596, 1080, 1695, 441, 907, 477, 118,
892, 803, 1464, 1748, 1436, 1385, 1809, 1321, 189, 951, 2024, 264, 123, 1785, 1118, 1779, 432, 1163, 1063, 1939, 1122, 759, 60, 462, 965,
1995, 389, 2022, 365, 886, 291, 1149, 2007, 1773, 1337, 1727, 21, 166, 158, 1664, 616, 1022, 170, 797, 3, 819, 398, 1581, 1145, 1692,
1744, 455, 579, 1968, 1757, 195, 1188, 1295, 2030, 1477, 1829, 1680, 1857, 1131, 1353, 381, 600, 1682, 440, 611, 773, 1971, 973, 224,
915, 1762, 1588, 322, 1491, 1294, 928, 2021, 682, 753, 719, 1332, 880, 506, 1514, 1281, 1414, 1485, 467, 1717, 979, 1274, 1611, 20, 709,
482, 85, 1177, 1660, 492, 456, 187, 2048, 25, 1121, 40, 128, 133, 574, 840, 1555, 855, 873, 1065, 1910, 397, 207, 1952, 1881, 786, 590,
1261, 897, 1813, 1147, 1247, 1818, 2002, 1136, 471, 1454, 1244, 937, 396, 744, 518, 2025, 665, 642, 1499, 1518, 53, 88, 1185, 788, 223,
583, 1922, 1911, 1945, 586, 940, 1363, 91, 582, 1407, 1792, 955, 180, 1545, 1856, 314, 669, 757, 1935, 1116, 1551, 1594, 1521, 817, 194,
595, 1138, 1233, 1851, 1221, 98, 1040, 793, 1697, 805, 193, 599, 119, 1530, 1403, 502, 1694, 210, 1372, 860, 1250, 722, 883, 124, 237,
222, 1621, 743, 901, 1940, 990, 912, 618, 1174, 297, 1344, 1336, 1526, 1599, 1457, 2014, 1220, 1375, 24, 182, 526, 1644, 1238, 1728, 230,
654, 1560, 42, 1000, 349, 304, 1691, 670, 1128, 1892, 1291, 2012, 1490, 90, 1094, 790, 157, 1369, 487, 636, 1580, 401, 340, 1998, 1923,
1031, 668, 377, 1933, 449, 637};
unordered_map<int, int> mapa;
void alg(int n) {
string s;
cin >> s;
s.resize((n+10)/11*11, '0');
int ib = s.size()/11;
//cout << ib << '\n';
vector<char> c = {'P', 'K', 'N'};
unordered_map<char, int> mp = {{'P', 0}, {'K', 1}, {'N', 2}};
string ans;
for (int i = 0; i < ib; i++) {
ll x = 0;
for (int j = 0; j < 11; j++) {
x = x*2+s[i*11+j]-'0';
}
//cout << x << '\n';
x = perm[(x+i)%2053];
//cout << x << '\n';
vector<int> a (7, 0);
for (int j = 0; j < 7; j++) {
a[j] = x%3;
x /= 3;
//cout << a[i] << '\n';
}
reverse(a.begin(), a.end());
vector<int> b;
for (int j = 0; j < 7; j++) {
cout << c[a[j]] << endl;
char q;
cin >> q;
b.push_back(mp[q]);
if ((a[j]-b[j]+3)%3==1) {
cout << 'P' << endl;
cin >> q;
}
else if ((a[j]-b[j]+3)%3==2) {
cout << 'K' << endl;
cin >> q;
}
}
int y = 0;
for (int j = 0; j < 7; j++) {
y = y*3+b[j];
}
//cout << y << '\n';
y = (mapa[y]-i+2053)%2053;
//cout << y << '\n';
string c1;
for (int j = 0; j < 11; j++) {
c1.push_back(y%2+'0');
y /= 2;
}
reverse(c1.begin(), c1.end());
ans += c1;
}
ans.resize(n);
cout << "! " << ans << endl;
}
int main() {
//ios_base::sync_with_stdio(0);
//cin.tie(0);
for (int i = 0; i < 2053; i++) {
//cout << perm[i] << ' ' << i << ' ';
mapa[perm[i]] = i;
//cout << mapa[perm[i]] << '\n';
}
string s;
cin >> s;
int n, t;
cin >> n >> t;
for (int i = 0; i < t; i++) {
alg(n);
}
}
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 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | #include <bits/stdc++.h> using namespace std; #define ll long long #define st first #define nd second #define ld long double vector<int> perm = {1205, 1191, 702, 1769, 1060, 469, 707, 1132, 165, 1196, 1214, 1030, 362, 1650, 1736, 1980, 1417, 1195, 644, 721, 1576, 1557, 421, 1702, 1186, 1983, 552, 1688, 972, 1397, 353, 913, 544, 1919, 1384, 115, 640, 1270, 202, 281, 67, 673, 1012, 1625, 1884, 1733, 107, 799, 1626, 271, 1269, 1312, 1659, 1613, 392, 203, 1387, 1442, 1505, 319, 388, 390, 142, 409, 2041, 741, 718, 34, 1547, 1775, 26, 782, 711, 1638, 83, 435, 543, 1896, 256, 1315, 1194, 1273, 1223, 1895, 963, 45, 699, 132, 874, 1474, 239, 1668, 2008, 1504, 1836, 556, 750, 1511, 1216, 909, 537, 620, 1515, 1024, 2045, 493, 1966, 1740, 639, 1710, 1979, 49, 62, 507, 191, 68, 1201, 688, 1152, 1097, 697, 1349, 1488, 800, 562, 1605, 1449, 613, 1595, 1126, 1083, 783, 1271, 497, 188, 1241, 1003, 1395, 1225, 1899, 1987, 458, 1681, 770, 1832, 495, 949, 1202, 733, 2037, 1378, 1050, 267, 533, 211, 162, 1039, 823, 1533, 79, 1767, 136, 1874, 357, 1346, 746, 277, 771, 415, 1870, 1685, 30, 920, 1961, 1873, 1088, 1305, 1859, 1105, 383, 1016, 1475, 347, 1643, 1782, 1338, 122, 946, 1484, 273, 1817, 464, 947, 1684, 1554, 209, 71, 705, 666, 779, 902, 1389, 61, 969, 1523, 818, 1845, 1513, 830, 1891, 2018, 1203, 1821, 280, 1089, 479, 404, 46, 1095, 1927, 394, 1396, 989, 84, 161, 1634, 104, 594, 77, 607, 503, 292, 1758, 957, 863, 2049, 652, 478, 1947, 765, 452, 1679, 1598, 465, 512, 1721, 1776, 1124, 1409, 2051, 2040, 896, 760, 858, 1854, 1206, 1486, 508, 59, 1287, 1458, 92, 1784, 1683, 1354, 678, 135, 1616, 1693, 1993, 1335, 96, 371, 1048, 1236, 1579, 1064, 1739, 240, 1527, 1058, 57, 1300, 938, 318, 1171, 1799, 1279, 1986, 1158, 52, 108, 918, 2027, 1125, 1780, 1067, 1463, 985, 190, 1258, 517, 597, 1989, 1455, 1224, 153, 174, 439, 1302, 1301, 514, 587, 1645, 848, 1531, 1606, 300, 1759, 1267, 2028, 140, 454, 1323, 1539, 2003, 1648, 1716, 286, 382, 738, 249, 1293, 610, 204, 412, 789, 1824, 1358, 643, 1825, 761, 370, 1973, 1670, 1161, 2033, 851, 1438, 1955, 1473, 1450, 1642, 1830, 283, 1107, 1756, 41, 715, 1798, 19, 854, 1290, 1718, 1962, 1867, 1479, 1239, 301, 812, 1629, 681, 1793, 1936, 1619, 1879, 850, 519, 1497, 861, 1800, 1311, 1367, 1974, 872, 311, 496, 172, 1833, 1501, 581, 17, 1931, 604, 889, 891, 253, 906, 802, 1478, 1820, 1023, 56, 1563, 475, 1038, 1783, 881, 1437, 2006, 641, 1268, 1615, 1074, 726, 337, 344, 413, 1937, 555, 1461, 1388, 1245, 1134, 483, 1117, 257, 97, 1181, 1316, 1441, 536, 295, 1587, 553, 1313, 1390, 1972, 484, 1462, 1434, 65, 491, 1715, 423, 1502, 836, 326, 622, 967, 510, 625, 1747, 1704, 1652, 910, 980, 1139, 725, 522, 2047, 463, 1964, 1489, 1102, 806, 1211, 147, 1129, 1109, 811, 473, 306, 272, 1082, 1546, 243, 650, 845, 1006, 661, 72, 1778, 275, 1804, 1425, 1487, 332, 1470, 346, 186, 1675, 252, 1157, 1839, 1468, 205, 1357, 1656, 1445, 225, 1465, 168, 1341, 1841, 1046, 998, 307, 1583, 1230, 317, 263, 1077, 391, 651, 1522, 1146, 890, 227, 1051, 1542, 844, 120, 1722, 1811, 262, 1991, 417, 470, 1143, 1641, 961, 826, 1078, 864, 975, 266, 710, 1790, 677, 833, 82, 1637, 1113, 1928, 1725, 159, 254, 1339, 534, 1013, 1166, 1556, 1043, 461, 437, 1592, 1816, 116, 1352, 792, 884, 368, 399, 38, 822, 131, 0, 842, 1303, 489, 814, 1902, 1655, 80, 1209, 1310, 451, 1253, 660, 617, 309, 76, 125, 1696, 1329, 285, 1520, 1165, 144, 831, 450, 1104, 563, 1320, 1120, 1448, 94, 573, 219, 1399, 320, 2044, 1559, 1548, 101, 1204, 1801, 605, 729, 1647, 1401, 1612, 1361, 1985, 453, 1137, 1788, 837, 476, 100, 1614, 1364, 171, 1826, 1047, 871, 1433, 1665, 1248, 1210, 550, 1750, 2035, 4, 674, 447, 15, 988, 1628, 813, 296, 1822, 1426, 226, 1162, 1472, 1249, 1872, 1494, 935, 198, 1608, 1451, 1627, 1422, 361, 1355, 626, 32, 509, 1894, 1996, 1847, 862, 1459, 1635, 457, 608, 1262, 548, 422, 228, 8, 769, 2043, 690, 723, 1819, 1752, 1662, 2011, 578, 1218, 1285, 689, 978, 1866, 1508, 1741, 925, 511, 330, 117, 1970, 546, 1197, 236, 121, 551, 1192, 1106, 1951, 2046, 991, 1929, 888, 113, 825, 631, 197, 206, 528, 1755, 232, 1049, 201, 9, 486, 438, 1860, 2019, 571, 687, 1265, 1610, 1099, 1275, 63, 278, 1093, 1108, 241, 1365, 1810, 821, 1977, 1073, 1447, 1967, 929, 1706, 914, 1086, 1944, 1226, 155, 89, 529, 1753, 164, 1179, 1796, 646, 1151, 363, 1516, 1543, 99, 567, 1743, 173, 37, 110, 175, 615, 298, 1814, 1921, 731, 916, 244, 1651, 1915, 2034, 1101, 427, 895, 1327, 679, 448, 1882, 1589, 547, 1325, 1381, 1831, 696, 445, 444, 1745, 1222, 839, 1079, 671, 1115, 146, 214, 1307, 338, 1018, 1159, 982, 1772, 234, 1794, 1585, 192, 977, 1593, 1689, 141, 1978, 735, 1907, 1059, 1982, 1284, 1909, 1534, 1602, 1324, 1597, 944, 359, 1574, 693, 1444, 1943, 1764, 356, 1886, 832, 1960, 231, 1948, 768, 921, 282, 1020, 649, 870, 246, 1667, 856, 287, 376, 1712, 342, 1815, 1890, 964, 1510, 384, 1254, 1036, 1297, 1735, 1215, 1232, 539, 208, 1439, 1386, 221, 680, 367, 1789, 499, 1868, 849, 1865, 1703, 333, 1904, 268, 374, 406, 1632, 260, 1714, 29, 329, 152, 185, 480, 700, 1041, 22, 410, 373, 1277, 430, 664, 1168, 1754, 1440, 532, 1347, 443, 838, 501, 1042, 1905, 1070, 732, 387, 103, 954, 658, 150, 736, 428, 1466, 1582, 1026, 11, 1370, 798, 1229, 1549, 1577, 1418, 1148, 1774, 1624, 351, 917, 1144, 847, 341, 1435, 804, 2016, 772, 434, 676, 1072, 720, 1402, 504, 635, 137, 1571, 619, 1424, 151, 1156, 621, 2005, 1889, 1601, 2015, 834, 1976, 1351, 220, 602, 1777, 1893, 1164, 2042, 1296, 903, 343, 1032, 1493, 1564, 176, 1169, 1085, 105, 1500, 1322, 494, 1452, 820, 592, 7, 1005, 290, 1528, 1630, 212, 764, 1343, 327, 1946, 775, 55, 1898, 400, 284, 405, 1640, 148, 612, 801, 1573, 1001, 1807, 691, 369, 27, 976, 1646, 258, 585, 999, 868, 2036, 933, 958, 269, 1173, 521, 970, 1578, 184, 114, 102, 13, 1069, 655, 570, 1231, 481, 1348, 1938, 1481, 468, 634, 1808, 261, 1029, 139, 1897, 1544, 2039, 93, 1737, 1932, 1180, 627, 515, 78, 1609, 14, 1566, 810, 565, 1292, 852, 2031, 953, 1558, 708, 1391, 129, 561, 1864, 1133, 672, 1963, 1914, 1869, 1011, 724, 47, 1054, 403, 1738, 358, 987, 530, 419, 31, 505, 645, 1009, 328, 1028, 302, 930, 446, 1193, 525, 1377, 843, 932, 2004, 1900, 1827, 996, 1975, 1331, 1251, 1155, 894, 393, 1620, 1918, 960, 1469, 196, 1913, 662, 425, 73, 524, 1742, 1843, 1584, 352, 1672, 1431, 426, 1172, 1686, 1673, 1015, 160, 971, 758, 1590, 1876, 130, 1631, 143, 1190, 1908, 1924, 1415, 828, 2000, 39, 936, 109, 712, 1025, 580, 1154, 1044, 355, 1698, 1720, 875, 919, 134, 1340, 742, 591, 2052, 968, 575, 983, 1263, 1958, 145, 887, 740, 777, 5, 588, 1674, 1456, 568, 986, 1840, 684, 498, 717, 156, 1242, 531, 177, 624, 1278, 659, 866, 1541, 1984, 1731, 1861, 926, 1941, 1240, 2009, 402, 1677, 1282, 569, 1795, 934, 1393, 927, 941, 1770, 1368, 1460, 485, 1997, 1004, 1140, 111, 1280, 293, 716, 183, 1071, 1999, 995, 310, 796, 1959, 1362, 51, 1276, 1114, 460, 1875, 1990, 614, 1200, 1519, 683, 1189, 1256, 35, 1091, 1119, 1366, 1498, 1700, 233, 1957, 609, 324, 1596, 1678, 1217, 900, 728, 1877, 706, 905, 1081, 1427, 1406, 1330, 1178, 75, 1420, 12, 247, 217, 1373, 334, 316, 1328, 1288, 255, 1135, 2013, 366, 127, 780, 1412, 1724, 1208, 1730, 1317, 1467, 2020, 943, 380, 1934, 1053, 1398, 1517, 50, 1709, 1992, 816, 2017, 885, 354, 1257, 1887, 1853, 1586, 1286, 667, 1565, 1496, 1453, 385, 81, 1243, 922, 16, 904, 1846, 1734, 1676, 630, 1345, 1567, 859, 629, 87, 1400, 535, 386, 1421, 749, 698, 1405, 776, 379, 1553, 1306, 538, 755, 1916, 1142, 2032, 335, 289, 950, 1926, 829, 1246, 948, 857, 1763, 1227, 336, 1443, 276, 656, 1569, 841, 923, 774, 1844, 593, 299, 545, 215, 623, 695, 178, 474, 1880, 1591, 1507, 1786, 1701, 490, 1360, 2038, 339, 577, 1314, 1066, 2026, 242, 1765, 1110, 1803, 993, 767, 1837, 1392, 1862, 763, 1283, 1729, 74, 1540, 704, 1509, 1802, 730, 513, 1570, 686, 10, 791, 1768, 1446, 1432, 18, 809, 877, 924, 1797, 675, 1639, 167, 1538, 766, 1123, 213, 795, 1965, 181, 149, 1622, 2010, 865, 1969, 1176, 653, 1014, 1092, 1849, 429, 1858, 288, 1100, 1084, 95, 1604, 1791, 520, 1183, 199, 853, 1885, 1532, 235, 745, 638, 1917, 1912, 994, 523, 1308, 163, 106, 395, 1617, 1657, 1033, 1127, 549, 1027, 1334, 1404, 1687, 1266, 1045, 647, 28, 1562, 1524, 1008, 1255, 58, 584, 867, 781, 1906, 1654, 572, 598, 1052, 633, 959, 1636, 1021, 1153, 1272, 1199, 694, 378, 200, 1705, 1805, 1525, 692, 1653, 1495, 36, 1419, 1252, 663, 1141, 1213, 1954, 576, 1848, 564, 1863, 1483, 360, 364, 778, 250, 808, 1061, 1666, 1529, 1950, 1953, 1766, 408, 1056, 939, 1304, 466, 713, 1408, 1198, 1207, 966, 245, 411, 601, 785, 431, 1838, 540, 70, 259, 908, 911, 1852, 542, 1423, 2029, 701, 1228, 1550, 824, 1007, 1834, 1002, 1111, 442, 1649, 737, 869, 1235, 558, 270, 54, 1746, 1379, 1019, 323, 898, 238, 1318, 827, 560, 1480, 179, 1482, 1010, 893, 1575, 1956, 414, 294, 1994, 1536, 1289, 1671, 2001, 628, 33, 1182, 1949, 229, 1359, 1299, 303, 739, 1090, 566, 274, 1713, 416, 1376, 632, 126, 1607, 1428, 962, 762, 1264, 420, 1298, 1719, 1057, 1760, 1476, 1098, 882, 1260, 312, 1512, 1333, 541, 1812, 459, 974, 1187, 1603, 44, 2, 589, 1259, 1374, 500, 345, 1618, 1535, 992, 748, 734, 952, 1823, 488, 1925, 325, 1017, 66, 1383, 1878, 1429, 1732, 1237, 424, 1942, 1835, 997, 1309, 436, 1920, 752, 657, 747, 945, 1319, 112, 1842, 1781, 2050, 279, 418, 1112, 1749, 315, 169, 751, 603, 815, 1561, 1167, 248, 1035, 1503, 138, 1726, 606, 1711, 648, 559, 1708, 727, 1492, 321, 1690, 1130, 1350, 1699, 685, 835, 331, 433, 23, 956, 754, 1430, 1170, 64, 1382, 787, 1471, 876, 1806, 1903, 756, 1380, 554, 43, 1184, 1850, 1, 1661, 1371, 1062, 1394, 154, 1828, 1506, 1930, 807, 1723, 1175, 1988, 1034, 1342, 1219, 1055, 942, 48, 350, 372, 1068, 1871, 265, 1855, 1212, 472, 879, 2023, 1751, 1888, 1568, 714, 1663, 1707, 1326, 308, 1901, 846, 1572, 1037, 1787, 1087, 981, 1234, 1600, 1076, 557, 1981, 1416, 794, 1669, 1103, 1883, 69, 216, 516, 1096, 86, 251, 313, 1413, 931, 1658, 1761, 878, 1411, 1771, 1552, 407, 1356, 1150, 703, 348, 1537, 984, 1075, 1623, 527, 218, 1410, 1160, 6, 1633, 899, 375, 305, 784, 596, 1080, 1695, 441, 907, 477, 118, 892, 803, 1464, 1748, 1436, 1385, 1809, 1321, 189, 951, 2024, 264, 123, 1785, 1118, 1779, 432, 1163, 1063, 1939, 1122, 759, 60, 462, 965, 1995, 389, 2022, 365, 886, 291, 1149, 2007, 1773, 1337, 1727, 21, 166, 158, 1664, 616, 1022, 170, 797, 3, 819, 398, 1581, 1145, 1692, 1744, 455, 579, 1968, 1757, 195, 1188, 1295, 2030, 1477, 1829, 1680, 1857, 1131, 1353, 381, 600, 1682, 440, 611, 773, 1971, 973, 224, 915, 1762, 1588, 322, 1491, 1294, 928, 2021, 682, 753, 719, 1332, 880, 506, 1514, 1281, 1414, 1485, 467, 1717, 979, 1274, 1611, 20, 709, 482, 85, 1177, 1660, 492, 456, 187, 2048, 25, 1121, 40, 128, 133, 574, 840, 1555, 855, 873, 1065, 1910, 397, 207, 1952, 1881, 786, 590, 1261, 897, 1813, 1147, 1247, 1818, 2002, 1136, 471, 1454, 1244, 937, 396, 744, 518, 2025, 665, 642, 1499, 1518, 53, 88, 1185, 788, 223, 583, 1922, 1911, 1945, 586, 940, 1363, 91, 582, 1407, 1792, 955, 180, 1545, 1856, 314, 669, 757, 1935, 1116, 1551, 1594, 1521, 817, 194, 595, 1138, 1233, 1851, 1221, 98, 1040, 793, 1697, 805, 193, 599, 119, 1530, 1403, 502, 1694, 210, 1372, 860, 1250, 722, 883, 124, 237, 222, 1621, 743, 901, 1940, 990, 912, 618, 1174, 297, 1344, 1336, 1526, 1599, 1457, 2014, 1220, 1375, 24, 182, 526, 1644, 1238, 1728, 230, 654, 1560, 42, 1000, 349, 304, 1691, 670, 1128, 1892, 1291, 2012, 1490, 90, 1094, 790, 157, 1369, 487, 636, 1580, 401, 340, 1998, 1923, 1031, 668, 377, 1933, 449, 637}; unordered_map<int, int> mapa; void alg(int n) { string s; cin >> s; s.resize((n+10)/11*11, '0'); int ib = s.size()/11; //cout << ib << '\n'; vector<char> c = {'P', 'K', 'N'}; unordered_map<char, int> mp = {{'P', 0}, {'K', 1}, {'N', 2}}; string ans; for (int i = 0; i < ib; i++) { ll x = 0; for (int j = 0; j < 11; j++) { x = x*2+s[i*11+j]-'0'; } //cout << x << '\n'; x = perm[(x+i)%2053]; //cout << x << '\n'; vector<int> a (7, 0); for (int j = 0; j < 7; j++) { a[j] = x%3; x /= 3; //cout << a[i] << '\n'; } reverse(a.begin(), a.end()); vector<int> b; for (int j = 0; j < 7; j++) { cout << c[a[j]] << endl; char q; cin >> q; b.push_back(mp[q]); if ((a[j]-b[j]+3)%3==1) { cout << 'P' << endl; cin >> q; } else if ((a[j]-b[j]+3)%3==2) { cout << 'K' << endl; cin >> q; } } int y = 0; for (int j = 0; j < 7; j++) { y = y*3+b[j]; } //cout << y << '\n'; y = (mapa[y]-i+2053)%2053; //cout << y << '\n'; string c1; for (int j = 0; j < 11; j++) { c1.push_back(y%2+'0'); y /= 2; } reverse(c1.begin(), c1.end()); ans += c1; } ans.resize(n); cout << "! " << ans << endl; } int main() { //ios_base::sync_with_stdio(0); //cin.tie(0); for (int i = 0; i < 2053; i++) { //cout << perm[i] << ' ' << i << ' '; mapa[perm[i]] = i; //cout << mapa[perm[i]] << '\n'; } string s; cin >> s; int n, t; cin >> n >> t; for (int i = 0; i < t; i++) { alg(n); } } |
English