제출 #891217

#제출 시각아이디문제언어결과실행 시간메모리
891217vjudge1콤보 (IOI18_combo)C++17
100 / 100
12 ms1708 KiB
#include "combo.h"
#include <bits/stdc++.h>

using namespace std;

using vi = vector<int>;

string guess_sequence(int N) {
    char lit[] = {'A', 'B', 'X', 'Y'};
    int prima = 0;
    if(press("AB")) {
        if(press("A")) prima = 0;
        else prima = 1;
    } else {
        if(press("X")) prima = 2;
        else prima = 3;
    }
    string cur;
    cur += lit[prima];
    vector<char> dif;
    for(int j = 0; j < 4; ++j)
        if(j != prima)
            dif.push_back(lit[j]);
    if(N == 1) return cur;
    for(int i = 1; i + 1 < N; ++i) {
        string s = cur + dif[0] + cur + dif[1] + dif[0] + cur + dif[1] + dif[1] + cur + dif[1] + dif[2]; 
        //cout << "Dau query la " << s << "   si obtin   ";
        int v = press(s);
       // cout << v << "\n";
        if(v == cur.size()) {
            cur += dif[2];
        } else if( v == cur.size() + 1 ) {
            cur += dif[0];
        } else 
            cur += dif[1];
       // cout << cur << "\n";
    }
    if(press(cur + dif[0]) == N) {
        cur += dif[0];
    }
    else if(press(cur + dif[1]) == N) {
        cur += dif[1];
    } else
        cur += dif[2];
    return cur;
}

컴파일 시 표준 에러 (stderr) 메시지

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:30:14: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |         if(v == cur.size()) {
      |            ~~^~~~~~~~~~~~~
combo.cpp:32:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |         } else if( v == cur.size() + 1 ) {
      |                    ~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...