제출 #229973

#제출 시각아이디문제언어결과실행 시간메모리
229973kartel콤보 (IOI18_combo)C++14
0 / 100
1 ms200 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];
        }

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

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

        return s + c[2];
    }

//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
//}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...