답안 #352104

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
352104 2021-01-20T12:23:24 Z Sprdalo 콤보 (IOI18_combo) C++17
5 / 100
2 ms 200 KB
#include "combo.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair<int, int> pi;
typedef pair<ll, ll> pl;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<double> vd;
typedef vector<bool> vb;
typedef vector<char> vc;
typedef vector<string> vs;
typedef vector<pi> vp;
typedef vector<pl> vpl;

string pass;
int N, cnt;
int pres(string s){
    ++cnt;
    int n = N, m = s.length();

    if (m > 4*n || m<0) throw SIGSEGV;

    int sol = 0;
    for (int i = 0; i < m; ++i){
        int r = 0, ind = i;
        for (int j = 0; j < n; ++j){
            if (s[ind] == pass[j]){
                ++r;
                ++ind;
            } else {
                sol = max(sol, r);
                break;
            }
        }
    }

    return sol;
}

string guess_sequence(int n){
    int k = press("AB");

    char d;
    if (!k){
        k = press("X");
        if (!k)
            d = 'Y';
        else
            d = 'X';
    } else {
        k = press("A");
        if (!k)
            d = 'B';
        else
            d = 'A';
    }

    string st = "ABXY";
    if (d == 'A')
        st = "BXY";
    else if (d == 'B')
        st = "AXY";
    else if (d == 'X')
        st = "ABY";
    else
        st = "ABX";

    char a = st[0], b = st[1], c = st[2];

    string s = "";
    s += d;

    for (int i = 2; i < n; ++i){
        string t = "";
        t += (s + a + a);
        t += (s + a + b);
        t += (s + a + c);
        t += (s + b);

  //      cout << "PITAM " << t << ' ';
        k = press(t);
    //    cout << k << '\n';

        if (k == i-1){
            s += c;
            continue;
        }

        if (k == i){
            s += b;
            continue;
        }

        s += a;
    }

    k = press(s+a);
    if (k == n){
        s += a;
        return s;
    }
    
    k = press(s+b);
    if (k == n){
        s += b;
        return s;
    }

    s += c;
    return s;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 200 KB Output is correct
2 Correct 1 ms 200 KB Output is correct
3 Correct 0 ms 200 KB Output is correct
4 Correct 1 ms 200 KB Output is correct
5 Correct 1 ms 200 KB Output is correct
6 Correct 1 ms 200 KB Output is correct
7 Correct 1 ms 200 KB Output is correct
8 Correct 1 ms 200 KB Output is correct
9 Correct 1 ms 200 KB Output is correct
10 Correct 1 ms 200 KB Output is correct
11 Correct 2 ms 200 KB Output is correct
12 Correct 1 ms 200 KB Output is correct
13 Correct 1 ms 200 KB Output is correct
14 Correct 1 ms 200 KB Output is correct
15 Correct 1 ms 200 KB Output is correct
16 Correct 1 ms 200 KB Output is correct
17 Correct 1 ms 200 KB Output is correct
18 Correct 1 ms 200 KB Output is correct
19 Correct 1 ms 200 KB Output is correct
20 Correct 1 ms 200 KB Output is correct
21 Correct 1 ms 200 KB Output is correct
22 Correct 1 ms 200 KB Output is correct
23 Correct 1 ms 200 KB Output is correct
24 Correct 1 ms 200 KB Output is correct
25 Correct 0 ms 200 KB Output is correct
26 Correct 1 ms 200 KB Output is correct
27 Correct 1 ms 200 KB Output is correct
28 Correct 1 ms 200 KB Output is correct
29 Correct 1 ms 200 KB Output is correct
30 Correct 1 ms 200 KB Output is correct
31 Correct 1 ms 200 KB Output is correct
32 Correct 0 ms 200 KB Output is correct
33 Correct 1 ms 200 KB Output is correct
34 Correct 1 ms 200 KB Output is correct
35 Correct 1 ms 200 KB Output is correct
36 Correct 1 ms 200 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 200 KB Wrong Answer: wrong guess.
2 Halted 0 ms 0 KB -