제출 #229971

#제출 시각아이디문제언어결과실행 시간메모리
229971kartel콤보 (IOI18_combo)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#include "grader.cpp"
//#include "grader.h"
//#include "combo.h"
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//#define in(x) freopen(x, "r", stdin)
//#define out(x) freopen(x, "w", stdout)
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("-O3")
//#define F first
//#define S second
//#define pb push_back
//#define N +100500
//#define M ll(1e9 + 7)
#define sz(x) (int)x.size()
//#define re return
//#define oo ll(1e18)
//#define el '\n'
using namespace std;
//using namespace __gnu_pbds;
//typedef tree <int, null_type, less_equal <int> , rb_tree_tag, tree_order_statistics_node_update> ordered_set;
//typedef long long ll;
//typedef long double ld;

void swap(char &x, char &y)
{
    char t = x;
    x = y;
    y = t;
}

string guess_sequence(int n)
    {
        string s = "";
        char c[4];

        c[0] = 'A';
        c[1] = 'B';
        c[2] = 'X';
        c[3] = 'Y';

        s += c[0];
        s += c[1];

        int p = press(s);

        if (p > 0)
        {
            s = "";
            s += c[0];

            p = press(s);

            if (p > 0) swap(c[0], c[3]);
            else
            {
                s = "";
                s += c[1];
                swap(c[1], c[3]);
            }
        }
        else
        {
            s = "";
            s += c[2];

            p = press(s);

            if (p > 0) swap(c[2], c[3]);
            else
            {
                s = "";
                s += c[3];
            }
        }

        for (int len = 2; len < n; len++)
        {
            string maybeone = s + c[0] + c[0] + s + c[0] + c[1] + s + c[0] + c[2] + s + c[2];

            p = press(maybeone);

            if (p == len + 1) s += c[0];
            else if (p == len) s += c[2];
            else s += c[1];
        }

        if (sz(s) == n - 1)
        {
            p = press(s + c[0]);
            if (p == n) return s + c[0];

            p = press(s + c[1]);
            if (p == n) return s + c[1];

            p = press(s + c[2]);
            if (p == n) return s + c[2];
        }

        return s;
    }

//int main()
//{
//    srand(time(0));
//    ios_base::sync_with_stdio(0);
//    iostream::sync_with_stdio(0);
//    ios::sync_with_stdio(0);
//    cin.tie(NULL);
//    cout.tie(NULL);
//
////    in("input.txt");
////    out("output.txt");
//
//  ABXXBYXBB
//}

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

/usr/bin/ld: /tmp/ccfnKe3c.o: in function `press(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
grader.cpp:(.text+0x0): multiple definition of `press(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)'; /tmp/ccKw2jac.o:combo.cpp:(.text+0xc0): first defined here
/usr/bin/ld: /tmp/ccfnKe3c.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccKw2jac.o:combo.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status