Submission #624327

#TimeUsernameProblemLanguageResultExecution timeMemory
624327speedyArdaCombo (IOI18_combo)C++14
5 / 100
1 ms268 KiB
#include "combo.h"
#include "bits/stdc++.h"
using namespace std;
string letters[4] = {"A", "B", "X", "Y"}; 

string guess_sequence(int N) {
    string res = "";
    int forbidden = 0;
    for(int idx = 0; idx < 3; idx++)
    {
        string i = letters[idx];
        int num = press(i);
        if(num == 1)
        {
            res = i;
            forbidden  = idx;
            break;
        }
    }  
    if(res.size() == 0) {
        res = "Y";  
        forbidden = 3;
    }
    string available[3];
    for(int i = 0; i < 4; i++)
    {
        if(forbidden == i)
            continue;
        if(i < forbidden)
            available[i] = letters[i];
        else 
            available[i - 1] = letters[i];
    }
    int last = 0;
    while(res.size() < N - 1)
    {
        string temp = "";
        for(int i = 0; i <= 2; i++)
        {
            //if(res.size() + 1 == N && last != 0)
                //continue;
            temp += res + available[0] + available[i];
        }
        //if(res.size() + 1 < N || (res.size() + 1 == N && last != 0))
        temp += res + available[1];
        int num = press(temp);
        if(num == res.size()) {
            res += available[2];
            last = 2;
        }
        else if(num - 1 == res.size()) {
            res += available[1];
            last = 1;
        }
        else {
            res += available[0];
            last = 0;
        }
            

    }
    for(string i : available)
    {
        int num = press(res + i);
        if(num == N)
        {
            res += i;
            break;
        }
    }
    return res;
}


Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:35:22: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   35 |     while(res.size() < N - 1)
      |           ~~~~~~~~~~~^~~~~~~
combo.cpp:47:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |         if(num == res.size()) {
      |            ~~~~^~~~~~~~~~~~~
combo.cpp:51:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   51 |         else if(num - 1 == res.size()) {
      |                 ~~~~~~~~^~~~~~~~~~~~~
combo.cpp:34:9: warning: variable 'last' set but not used [-Wunused-but-set-variable]
   34 |     int last = 0;
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...