CSES - Datatähti 2021 alku - Results
Submission details
Task:Arpakuutiot
Sender:jusola
Submission time:2020-10-11 17:19:16 +0300
Language:C++17
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'bool areEqual(kuutio, kuutio)':
input/code.cpp:93:16: error: 'r' was not declared in this scope
         comp = r(comp);
                ^

Code

#include <iostream>
#include <vector>
#include <string>


using namespace std;

class kuutio {
    public:
        int a, b, c, d, e, f;
        kuutio(int ca, int cb, int cc, int cd, int ce, int cf) {
            a=ca;
            b=cb;
            c=cc;
            d=cd;
            e=ce;
            f=cf;
        }
        kuutio(){
            
        }
        void p(){
            //cout << "Kuutio: " << a << b << c << d << e << f << "\n";
        }
};

bool operator==(const kuutio& a, const kuutio& b) { 
    return (a.a == b.a && a.b == b.b && a.c == b.c && a.d == b.d && a.e == b.e && a.f == b.f);
}

kuutio rot(kuutio k){
    kuutio nk;
    nk.d = k.a;
    nk.b = k.b;
    nk.f = k.c;
    nk.c = k.d;
    nk.e = k.e;
    nk.a = k.f;
    return nk;
}

kuutio roll_f(kuutio k){
    kuutio nk;
    nk.a = k.e;
    nk.b = k.a;
    nk.c = k.b;
    nk.d = k.d;
    nk.e = k.c;
    nk.f = k.f;
    return nk;
}

kuutio roll_b(kuutio k){
    kuutio nk;
    nk.a = k.b;
    nk.b = k.c;
    nk.c = k.e;
    nk.d = k.d;
    nk.e = k.a;
    nk.f = k.f;
    return nk;
}

kuutio up(kuutio k){
    kuutio nk;
    nk.a = k.a;
    nk.b = k.d;
    nk.c = k.c;
    nk.d = k.e;
    nk.e = k.f;
    nk.f = k.b;
    return nk;
}

bool areEqual(kuutio k1, kuutio k2){
    kuutio comp = k1;
    for(int i = 0; i < 4; i++){
        for (int j = 0; j < 4; j++){
            if(comp == k2){
                return true; 
            }
            comp.p();
            comp = rot(comp);
        }
        comp = up(comp);
    }
    comp = up(rot(comp));
    for (int j = 0; j < 4; j++){
        if(comp == k2){
            return true; 
        }
        comp.p();
        comp = r(comp);
    }
    comp = up(up(comp));
    for (int j = 0; j < 4; j++){
        if(comp == k2){
            return true; 
        }
        comp.p();
        comp = rot(comp);
    }
    comp.p();
    return false;
}

int main(){
    int n;
    cin >> n;
    vector<kuutio> kuutiot(n);

    for(int i = 0; i < n; i++){
        vector<string> inputs(5);
        string s;
        for(int j = 0; j < 5; j++){
            cin >> s;
            inputs[j] = s;
        }
        int a = inputs[0][0] - '0';
        int b = inputs[0][1] - '0';
        int c = inputs[0][2] - '0';
        int d = inputs[1][1] - '0';
        int e = inputs[2][1] - '0';
        int f = inputs[3][1] - '0';
        kuutio nk(a,b,c,d,e,f);
        kuutiot[i]=nk;
    }

    for (int i = 0; i < n; i++){
        string s = "";
        for(int j = 0; j < n; j++){
            if(i == j) continue;
            if(areEqual(kuutiot[i], kuutiot[j])){
                s += (to_string(j+1)+" ");
            }
        }
        if(s == ""){
            s = "-\n";
        }else{
            s.pop_back();
            s += "\n";
        }
        cout << s;
    }

    

    return 0;
}