Submission #1043339

#TimeUsernameProblemLanguageResultExecution timeMemory
1043339ZicrusCombo (IOI18_combo)C++17
5 / 100
1 ms344 KiB
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;

typedef long long ll;

string guess_sequence(int n) {
    string s;
    if (press("AB")) s = press("A") ? 'A' : 'B';
    else s = press("X") ? 'X' : 'Y';
    vector<char> c;
    if (s[0] != 'A') c.push_back('A');
    if (s[0] != 'B') c.push_back('B');
    if (s[0] != 'X') c.push_back('X');
    if (s[0] != 'Y') c.push_back('Y');

    while (s.size() < n-1) {
        string g = s + c[0]
                 + s + c[1] + c[0]
                 + s + c[1] + c[1]
                 + s + c[1] + c[2];
        int a = press(g);
        if (a == s.size()) s += c[2];
        else if (a == s.size()+1) s += c[0];
        else if (a == s.size()+2) s += c[1];
    }

    if (press(s + c[0]) == n) return s + c[0];
    if (press(s + c[1]) == n) return s + c[1];
    return s + c[2];
}

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:17:21: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   17 |     while (s.size() < n-1) {
      |            ~~~~~~~~~^~~~~
combo.cpp:23:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |         if (a == s.size()) s += c[2];
      |             ~~^~~~~~~~~~~
combo.cpp:24:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |         else if (a == s.size()+1) s += c[0];
      |                  ~~^~~~~~~~~~~~~
combo.cpp:25:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |         else if (a == s.size()+2) s += c[1];
      |                  ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...