Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <string>
- #include <deque>
- int sn, hm;
- int ans = 0;
- struct Pair {
- int first, second;
- };
- std::deque<Pair> queries;
- std::vector<int> prefix_function;
- bool get (int first, int second, int& counter) {
- if (second == sn || first == sn) {
- return false;
- }
- counter++;
- if (first > sn) {
- std::cout << "t " << first - sn << " ";
- } else {
- std::cout << "s " << first + 1 << " ";
- }
- if (second > sn) {
- std::cout << "t " << second - sn << "\n";
- } else {
- std::cout << "s " << second + 1 << "\n";
- }
- fflush(stdout);
- std::string verdict;
- std::cin >> verdict;
- if (verdict.size() == 2) {
- return false;
- }
- return true;
- }
- void query (int& counter) {
- auto it = queries.front();
- queries.pop_front();
- int ind = it.first;
- int cur = prefix_function[it.second];
- if (get (ind, cur, counter)) {
- prefix_function[ind] = cur + 1;
- return;
- }
- if (cur == 0) {
- prefix_function[ind] = cur;
- return;
- }
- cur--;
- queries.push_front({ind, cur});
- }
- int main() {
- std::cin >> sn >> hm;
- prefix_function.resize(sn + 1 + hm);
- for (int i = 1; i < sn; i++) {
- queries.push_back({i, i - 1});
- }
- for (int i = 0; i < hm; i++) {
- if (i < sn - 1) {
- queries.push_back({sn + 1 + i, sn + i});
- for (int iter_counter = 0; iter_counter < 5 && queries.size(); ) {
- query(iter_counter);
- }
- std::cout << "$ 0\n";
- fflush(stdout);
- } else {
- auto cur = queries.size();
- queries.push_front({sn + 1 + i, sn + i});
- int iter_counter = 0;
- query(iter_counter);
- if (queries.size() != cur) {
- auto it = queries.front();
- queries.pop_front();
- queries.push_front(it);
- } else {
- if (prefix_function[sn + i + 1] == sn) {
- ans++;
- }
- }
- while (iter_counter < 5 && queries.size()) {
- query(iter_counter);
- }
- std::cout << "$ " << ans << "\n";
- fflush(stdout);
- }
- }
- // for (auto x : prefix_function) std::cout << x << " ";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement