Есть 2 колоды карт (колода A и колода B), колода A имеет n карт, которые пронумерованы от 1 до n сверху вниз, колода B пуста.Необходимо применить три правила:
1) Поместить верхнюю карту из колоды A на верх колодыB 2) Переключить верхнюю карту из колоды A с нижней картой, сделать то же самое с колодой B 3) Если остались картыв deckA продолжайте выполнять первые два правила
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> deckA;
vector<int> deckB;
for (int i = 0; i < n; i++) {
deckA.push_back(i+1);
}
for (int i = 0; i < n; i++) {
deckB.insert(deckB.begin(), deckA[0]);
deckA.erase(deckA.begin());
rotate(deckA.begin(), deckA.begin() + 1, deckA.end());
rotate(deckB.begin(), deckB.begin() + 1, deckB.end());
}
for (int i = 0; i < n; i++) {
cout << deckB[i];
if (i != n-1) {
cout << ",";
}
}
}
Я получаю выражение: не могу искать вектор, повторяющийся после завершения.Я почти уверен, что вращаюсь неправильно.Любая помощь приветствуется.