제출 #1272275

#제출 시각아이디문제언어결과실행 시간메모리
1272275jungle15콤보 (IOI18_combo)C++17
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
#define Jungle "ioi18p1"
#define REP(i,n) for (int i = 0; i < (n); ++i)
const int M = 4;
const char LET[M] = { 'A', 'B', 'X', 'Y' };
string S;
int N;
int qcnt = 0;

int press(string s);

int guess_one(const string &s)
{
    int len = press(s + LET[0] + s + LET[1]);
    int idx = 2 * (len < (int)s.length() + 1);
    len = press(s + LET[idx]);
    idx += (len < (int)s.length() + 1);
    return idx;
}

string guess_sequence(int N)
{
    int idx[M];
    REP(i, M)
        idx[i] = i;
    string s;
    {
        int id = guess_one(s);
        s += LET[id];
        swap(idx[id], idx[M - 1]);
    }
    REP(i, N - 2)
    {
        string z;
        REP(j, M - 1)
        {
            z += s;
            z.push_back(LET[idx[0]]);
            z.push_back(LET[idx[j]]);
        }
        z += s;
        z.push_back(LET[idx[1]]);
        int len = press(z);
        if (len == i + 3)
            s.push_back(LET[idx[0]]);
        else if (len == i + 2)
            s.push_back(LET[idx[1]]);
        else
            s.push_back(LET[idx[2]]);
    }
    if (N > 1)
    {
        int id = guess_one(s);
        s += LET[id];
    }
    return s;
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    if (!(cin >> S))
        return 0;
    N = (int)S.size();
    string res = guess_sequence(N);
    cout << res << '\n';
    return 0;
}

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

/usr/bin/ld: /tmp/ccSP8pJd.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccDPARWQ.o:combo.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status