제출 #1195738

#제출 시각아이디문제언어결과실행 시간메모리
1195738Cebrayil09콤보 (IOI18_combo)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#include "combo.h"
using namespace std;

#define pb push_back

int press(string s);

string guess_sequence(int n) {
    vector<string> v = {"A", "B", "X", "Y"};
    string s;

    if(press("AB")) {
        if(press("A")) {
            s = "A";
            swap(v[0], v[3]);
        }
        else {
            s = "B";
            swap(v[1], v[3]);
        }
    }
    else {
        if(press("X")) {
            s = "X";
            swap(v[2], v[3]);
        }
        else {
            s = "Y";
        }
    }
    v.pop_back();

    for(int i = 1;i < n;i += 2) {
        if(s.size() == n-1) {
            if(press(s+v[0]) == n) {
                s += v[0];
                break;
            }
            if(press(s+v[1]) == n) {
                s += v[1];
                break;
            }
            s += v[2];
            break;
        }

        string test = s + v[0] + v[0] + s + v[1] + v[0];
        int say = press(test);
        if(say == i+2) {
            if(press(s+v[0]+v[0]) == i+2) {
                s = s + v[0] + v[0];
                continue;
            }

            s = s + v[1] + v[0];
            continue;
        }
        if(say == i+1) {
            say = press(s+v[0]+v[1], s+v[1]+v[1]);
            if(say == i+2) {
                if(press(s+v[0]+v[1]) == i+2) {
                    s = s + v[0] + v[1];
                    continue;
                }
                else {
                    s = s + v[1] + v[1];
                    continue;
                }
            }

            if(say == i+1) {
                if(press(s+v[0]+v[2]) == i+2) {
                    s = s + v[0] + v[2];
                    continue;
                }
                else {
                    s = s + v[1] + v[2];
                    continue;
                }
            }
        }
        if(say == i) {
            if(press(s + v[2] + v[0]) == i+2) {
                s = s + v[2] + v[0];
                continue;
            }
            if(press(s + v[2] + v[1]) == i+2) {
                s = s + v[2] + v[1];
                continue;
            }

            s = s + v[2] + v[2];
            continue;
        }
    }

    return s;
}

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

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:60:24: error: too many arguments to function 'int press(std::string)'
   60 |             say = press(s+v[0]+v[1], s+v[1]+v[1]);
      |                   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
combo.cpp:7:5: note: declared here
    7 | int press(string s);
      |     ^~~~~