제출 #999190

#제출 시각아이디문제언어결과실행 시간메모리
999190pakapu콤보 (IOI18_combo)C++17
컴파일 에러
0 ms0 KiB
#include <vector> #include <iostream> #include <cassert> #include <algorithm> #include "combo.h" std::string get_first_char() { std::vector<std::string> available_chars = {"A", "B", "X", "Y"}; for (int i = 0; i < 4; i++) { if (press(available_chars[i]) == 1) { return available_chars[i]; } } assert(false); return "-"; } std::string guess_sequence(int N) { std::vector<std::string> available_chars = {"A", "B", "X", "Y"}; std::string first_char = get_first_char(); available_chars.erase(find(available_chars.begin(), available_chars.end(), first_char)); // std::cout << "Available characters: "; // for (auto c : available_chars) { // std::cout << c << " "; // } // std::cout << '\n'; std::string ans = first_char; for (int i = 1; i < N - 1; i++) { std::string next = ""; next += ans + available_chars[0]; next += ans + available_chars[1] + available_chars[0]; next += ans + available_chars[1] + available_chars[1]; next += ans + available_chars[1] + available_chars[2]; int coins = press(next); switch (coins - ans.size()) { case 0: ans += available_chars[2]; break; case 1: ans += available_chars[0]; break; case 2: ans += available_chars[1]; break; default: assert(false); } } int final_coins1 = press(ans + available_chars[0]); int final_coins2 = press(ans + available_chars[1]); if (final_coins1 == N) { return ans + available_chars[0]; } else if (final_coins2 == N) { return ans + available_chars[1]; } else { assert(press(ans + available_chars[2]) == N) return ans + available_chars[2]; } assert(false); return ans; }

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

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:70:5: error: expected ';' before 'return'
   70 |     return ans + available_chars[2];
      |     ^~~~~~