Это обсуждение публикации https://olympiads.bc-pf.org/informatics/junior/2021/8
Это обсуждение публикации https://olympiads.bc-pf.org/informatics/junior/2021/8
Не понимаю задачу, можете пожалуйста помочь?
У тебя есть кубик с 6 цифрами. Изначальная расстановка: Слева 1, справа 6, спереди 2, сзади 5, сверху 3 и снизу 4. Человек начинает сдвигать значения кубика налево, направо, вверх, вниз, по часовой, против часовой.
Все операции не влияют на все части кубика. Сдвиг налево-направо не влияют на верхнюю и нижнюю часть, сдвиг вверх-вниз не влияют на правую и левую часть, а сдвиг по часовой - против часовой не влияют на переднюю и заднюю часть.
Пример: слева 1, справа 6, спереди 2, сзади 5. При операции “R”, значения сдвигаются на одну сторону вправо, то есть: слева 5, справа 2, спереди 1, сзади 6.
Решение
string s;
cin >> s;
int u = 3, l = 1, r = 6, f = 2, b = 5, d = 4;
for(int i = 0; i < s.size(); i++){
if(s[i] == 'R'){
swap(f, r);
swap(f, b);
swap(f, l);
}
if(s[i] == 'L'){
swap(f, l);
swap(f, b);
swap(f, r);
}
if(s[i] == 'U'){
swap(f, u);
swap(f, b);
swap(f, d);
}
if(s[i] == 'D'){
swap(f, d);
swap(f, b);
swap(f, u);
}
if(s[i] == 'C'){
swap(u, r);
swap(u, d);
swap(u, l);
}
if(s[i] == 'A'){
swap(u, l);
swap(u, d);
swap(u, r);
}
}
cout << u;
Да, спасибо огромное, я думал там сложнее решение гораздо (ну так как это респа, все дела, а на деле все так легко)))