Submission #1284670

#TimeUsernameProblemLanguageResultExecution timeMemory
1284670RaresCombo (IOI18_combo)C++20
100 / 100
9 ms480 KiB
#include "combo.h"
#include <bits/stdc++.h>
using namespace std;

string rez;

/**int press (string p){
    cout <<p<<'\n';
    int rez;
    cin >>rez;
    return rez;
}*/

bool ok[4];
char f (int x){
    if (x==0) return 'A';
    if (x==1) return 'B';
    if (x==2) return 'X';
    if (x==3) return 'Y';
}

string	guess_sequence(int	n){

    int x=press ("AB");
    if (x){
        int y=press ("A");
        if (y) ok[0]=1;
        else ok[1]=1;
    }
    else{
        int y=press ("X");
        if (y) ok[2]=1;
        else ok[3]=1;
    }

    for (int i=0;i<4;++i){
        if (ok[i]){
            rez.push_back(f (i));
        }

    }

    for (int i=1;i<n;++i){
        if (i==n-1){
            int crt=0;
            for (int j=0;j<4;++j){
                if (ok[j]==0){
                    if (crt==2){
                        return rez+f (j);
                    }
                    int x=press (rez+f (j));
                    crt++;
                    if (x==n){
                        return rez+f (j);
                    }
                }
            }
        }
        else{
            int crt=0,l1=-1,l2=-1,l3=-1;
            string s;
            for (int j=0;j<4;++j){
                if (ok[j]==0){
                    if (crt==0){
                        l1=j;
                        s.append (rez);
                        s.push_back (f (j));
                        crt++;
                    }
                    else{
                        if (crt==2){
                            l3=j;
                            break;
                        }
                        l2=j;
                        for (int k=0;k<4;++k){
                            if (ok[k]==0){
                                s.append (rez);
                                s.push_back (f (j));
                                s.push_back (f (k));
                            }
                        }
                        crt++;
                    }
                }
            }
            int x=press (s);
            if (x==i){
                rez.push_back (f (l3));
            }
            else{
                if (x==i+1){
                    rez.push_back (f (l1));
                }
                else{
                    rez.push_back (f (l2));
                }
            }
        }
    }

    return rez;
}

Compilation message (stderr)

combo.cpp: In function 'char f(int)':
combo.cpp:20:1: warning: control reaches end of non-void function [-Wreturn-type]
   20 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...