Submission details
Task:Babaza Game
Sender:aalto26am_048
Submission time:2026-08-31 17:03:41 +0300
Language:C++ (C++20)
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.00 sdetails
#2ACCEPTED0.00 sdetails
#3ACCEPTED0.00 sdetails
#4ACCEPTED0.00 sdetails
#50.00 sdetails
#6ACCEPTED0.00 sdetails
#7ACCEPTED0.00 sdetails
#8ACCEPTED0.00 sdetails
#9ACCEPTED0.00 sdetails
#10ACCEPTED0.00 sdetails
#11ACCEPTED0.00 sdetails
#12ACCEPTED0.00 sdetails
#13ACCEPTED0.00 sdetails
#14ACCEPTED0.00 sdetails

Code

#include <bits/stdc++.h>

using namespace std;

string avoid(string& s, string& e, int i) {

    int q = 0;
    vector<string> letters = {"A", "B", "C", "D", "E", "F"};
    int n = s.size();
    while (true) {

        q++;
        char l = letters[q][0];
        if (i > 0 && (s[i-1] == (char)l || e[i-1] == (char)l)) {
            continue;
        }

        if (i < n-1 && (s[i+1] == (char)l || e[i+1] == (char)l)) {
            continue;
        }

        return letters[q];

    }

}

int main() {

    string s, e;
    cin >> s >> e;

    int n = s.size();

    if (n == 1 || s == e) {
        cout << s << endl << e << endl;
        return 0;
    }

    int m = (1 << n);

    for (int i = 0; i < m; i++) {

        string w = "";
        int cont = 0;
        int anticont = 0;
        bool valid = true;
        

        for (int j = 0; j < n; j++) {
            if ((1 << j) & i) {
                w += s[j];
                cont = 0;
                anticont++;
                if (anticont > 1) valid = false;
            } else {
                w += e[j];
                cont++;
                if (cont > 1) valid = false;
                anticont = 0;
            }
        }

        for (int i = 0; i < n-1; i++) {
            if (w[i] == w[i+1]) {
                valid = false;
            }
        }

        if (valid) {
            cout << s << endl << w << endl << e << endl;
            return 0;
        }

    }

    cout << s << endl;
    for (int i = 0; i < n; i++) {
        if (i % 2 == 0) {
            cout << s[i];
        } else {
            cout << avoid(s, e, i);
        }
    }
    cout << endl;
    for (int i = 0; i < n; i++) {
        if (i % 2 == 0) {
            cout << e[i];
        } else {
            cout << avoid(s, e, i);
        }
    }
    cout << endl;
    cout << e << endl;

}

Test details

Test 1

Verdict: ACCEPTED

input
A
B

correct output
A
B

user output
A
B

Test 2

Verdict: ACCEPTED

input
BABAZA
BACBCB

correct output
BABAZA
BACACA
BACBCB

user output
BABAZA
BACACA
BACBCB

Test 3

Verdict: ACCEPTED

input
AB
BA

correct output
AB
CB
CA
BA

user output
AB
AC
BC
BA

Test 4

Verdict: ACCEPTED

input
ABC
BCD

correct output
ABC
DBD
DCD
BCD

user output
ABC
AEC
BED
BCD

Test 5

Verdict:

input
AXYB
CXYD

correct output
AXYB
CXYD

user output
AXYB
AXYD
CXYD

Test 6

Verdict: ACCEPTED

input
LMIJLF
PAQBMH

correct output
LMIJLF
PMQJMF
PAQBMH

user output
LMIJLF
LAIBLH
PAQBMH

Test 7

Verdict: ACCEPTED

input
PNIWLSLIH
CRLVPUFHD

correct output
PNIWLSLIH
CNLWPSFID
CRLVPUFHD

user output
PNIWLSLIH
CNLWPSFID
CRLVPUFHD

Test 8

Verdict: ACCEPTED

input
ZDYIAVTKL
ZJKVXGAUM

correct output
ZDYIAVTKL
ZJYVAGTUL
ZJKVXGAUM

user output
ZDYIAVTKL
ZDKIXVAKM
ZJKVXGAUM

Test 9

Verdict: ACCEPTED

input
FBIXISJH
NXZIESMG

correct output
FBIXISJH
NBZXESMH
NXZIESMG

user output
FBIXISJH
NBZXESMH
NXZIESMG

Test 10

Verdict: ACCEPTED

input
OPGW
QJIE

correct output
OPGW
QPIW
QJIE

user output
OPGW
OJGE
QJIE

Test 11

Verdict: ACCEPTED

input
DUKNPKQZBL
NZPBMOEBIC

correct output
DUKNPKQZBL
NUPNMKEZIL
NZPBMOEBIC

user output
DUKNPKQZBL
NUPNMKEZIL
NZPBMOEBIC

Test 12

Verdict: ACCEPTED

input
ZWDTX
HZOXI

correct output
ZWDTX
HWOTI
HZOXI

user output
ZWDTX
HWOTI
HZOXI

Test 13

Verdict: ACCEPTED

input
URJF
ITIQ

correct output
URJF
IRIF
ITIQ

user output
URJF
UTJQ
ITIQ

Test 14

Verdict: ACCEPTED

input
WYWBWU
IRYVBA

correct output
WYWBWU
WRWVWA
IRYVBA

user output
WYWBWU
WRWVWA
IRYVBA