**代码,但能全AC
2024-07-27 22:56:40
发布于:上海
18阅读
0回复
0点赞
**代码,但能全AC,我甚至自己也有点看不懂
#include <bits/stdc++.h>
using namespace std;
int main(){
int t;
cin >> t;
for(; t > 0; t--){
int n , m;
cin >> n >> m;
int a[n + 1];
for(int i = 1; i <= n; i++){
a[i] = i;
}
for(int i = 0; i < m; i++){
char c;
cin >> c;
int o1 , o2;
cin >> o1 >> o2;
if(c == 'A'){
for(int d = 1; d <= n; d++){
if(a[d] == o1){
o1 = d;
}
if(a[d] == o2){
o2 = d;
}
}
if(o1 <= o2){
if(a[o2] == 1){
o2 = n + 1;
}
int tmp = a[o1];
for(int j = o1; j < o2; j++){
a[j] = a[j + 1];
}
a[o2 - 1] = tmp;
}else{
int tmp = a[o1];
for(int j = o1; j > o2; j--){
a[j] = a[j - 1];
}
a[o2] = tmp;
}
for(int j = 1; j <= n; j++){
cout << a[j] << ' ';
}
cout << endl;
}else if(c == 'B'){
for(int d = 1; d <= n; d++){
if(a[d] == o1){
o1 = d;
}
if(a[d] == o2){
o2 = d;
}
}
if(o1 <= o2){
if(a[o2] == 1){
o2 = n + 1;
}
int tmp = a[o1];
for(int j = o1; j < o2; j++){
a[j] = a[j + 1];
}
a[o2 - 1] = tmp;
swap(a[o2] , a[o2 - 1]);
}else{
int tmp = a[o1];
for(int j = o1; j > o2; j--){
a[j] = a[j - 1];
}
a[o2] = tmp;
swap(a[o2] , a[o2 + 1]);
}
for(int j = 1; j <= n; j++){
cout << a[j] << ' ';
}
cout << endl;
}else{
if(o1 == 0){
for(int j = 1; j <= n; j++){
if(a[j] == o2){
if(j != 1){
cout << a[j - 1];
}else{
cout << a[n];
}
}
}
}else if(o1 == 1){
for(int j = 1; j <= n; j++){
if(a[j] == o2){
if(j != n){
cout << a[j + 1] << endl;
}else{
cout << a[1] << endl;
}
}
}
}
}
}
}
}
这里空空如也
有帮助,赞一个