QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#714333 | #8523. Puzzle II | Loging | TL | 2190ms | 10152kb | C++14 | 2.0kb | 2024-11-05 22:40:43 | 2024-11-05 22:40:45 |
Judging History
answer
#include<cstdio>
#include<algorithm>
#define M 600005
using namespace std;
char A[M],B[M];
int L[M],R[M];
int Ans[M][2];
int sz;
bool flag;
char st;
void Swap(int &a,int &b,int &c,int &d){
swap(R[L[a]],R[L[c]]);
swap(L[R[b]],L[R[d]]);
swap(L[a],L[c]);
swap(R[b],R[d]);
swap(a,c);swap(b,d);
}
int n,m;
void Add(int &x){
x++;
if(x>n)x-=n;
}
void Del(int &x){
x--;
if(x==0)x+=n;
}
int Inv;
char C[M],D[M];
void Print(){
printf("%s\n%s\n\n",C+1,D+1);
}
int F(int x){
if(x<=0)return x+n;
if(x>n)return x-n;
return x;
}
void Addans(int p1,int p2){
sz++;
// int tmp1=p1,tmp2=p2;
// for(int i=1;i<=n;i++){
// if(i==tmp1)putchar('[');
// else if(F(tmp1+m-1)==i)putchar(']');
// else putchar(' ');
// }
// puts("");
// printf("%s\n",C+1);
// for(int i=1;i<=n;i++){
// if(i==tmp2)putchar('[');
// else if(F(tmp2+m-1)==i)putchar(']');
// else putchar(' ');
// }
// puts("");
// printf("%s\n",D+1);
for(int i=1;i<=m;i++){
// printf("m=%d\n",flag?(n-m):m);
swap(C[F(p1+i-1)],D[F(p2+i-1)]);
}
// printf("%s\n%s\n\n",C+1,D+1);
Ans[sz][0]=p1;Ans[sz][1]=p2;
}
int main(){
scanf("%d%d",&n,&m);
scanf("%s",A+1);
scanf("%s",B+1);
for(int i=n+1;i<=n+n;i++)A[i]=B[i-n];
int cnt=0;
for(int i=1;i<=n;i++){
int lst=i-1,nxt=i+1;
if(lst==0)lst=n;
if(nxt==n+1)nxt=1;
L[i]=lst;R[i]=nxt;
L[i+n]=lst+n;R[i+n]=nxt+n;
C[i]=A[i];D[i]=B[i];
cnt+=A[i]=='B';
}
// if(m>=n/2){flag=true;m=n-m;}
if(cnt<=n/2)st='C';
else st='B';
int fr1=1,ed1=m,fr2=n+1,ed2=n+m;
int p1=1,p2=1;
while(1){
int cnt=0;
while(A[fr1]==st&&cnt<=n){
fr1=R[fr1];
ed1=R[ed1];
Add(p1);
cnt++;
continue;
}
if(cnt>n)break;
while(A[ed2]!=st){
fr2=R[fr2];
ed2=R[ed2];
Add(p2);
}
fr1=R[fr1];ed1=R[ed1];Add(p1);
Addans(p1,p2);
Swap(fr1,ed1,fr2,ed2);
fr1=L[fr1];ed1=L[ed1];Del(p1);
Addans(p1,p2);
Swap(fr1,ed1,fr2,ed2);
// printf("%s\n%s\n\n",C+1,D+1);
}
printf("%d\n",sz);
for(int i=1;i<=sz;i++)printf("%d %d\n",Ans[i][0],Ans[i][1]);
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 1ms
memory: 7796kb
input:
6 3 BCCBCC BBCBBC
output:
4 2 1 1 1 4 4 3 4
result:
ok moves = 4
Test #2:
score: 0
Accepted
time: 0ms
memory: 9840kb
input:
2 1 BC BC
output:
2 2 2 1 2
result:
ok moves = 2
Test #3:
score: 0
Accepted
time: 0ms
memory: 7784kb
input:
2 1 BB CC
output:
0
result:
ok moves = 0
Test #4:
score: 0
Accepted
time: 1ms
memory: 5656kb
input:
2 1 CC BB
output:
0
result:
ok moves = 0
Test #5:
score: 0
Accepted
time: 1ms
memory: 9804kb
input:
3 1 CCC BBB
output:
0
result:
ok moves = 0
Test #6:
score: 0
Accepted
time: 1ms
memory: 7780kb
input:
3 1 CBC BCB
output:
2 3 2 2 2
result:
ok moves = 2
Test #7:
score: 0
Accepted
time: 0ms
memory: 9744kb
input:
3 2 BBB CCC
output:
0
result:
ok moves = 0
Test #8:
score: 0
Accepted
time: 1ms
memory: 7684kb
input:
3 2 BCB BCC
output:
2 3 3 2 3
result:
ok moves = 2
Test #9:
score: 0
Accepted
time: 0ms
memory: 5728kb
input:
4 2 CCCB BBCB
output:
2 1 2 4 2
result:
ok moves = 2
Test #10:
score: 0
Accepted
time: 1ms
memory: 5664kb
input:
9 6 CCCBCCCBB BBBCBBBCC
output:
6 5 3 4 3 8 4 7 4 8 1 7 1
result:
ok moves = 6
Test #11:
score: 0
Accepted
time: 1ms
memory: 5660kb
input:
21 3 CCCCBBCBCCCCCCCBCCCCC BBCCBCBBBBBBBBBCBBBBB
output:
8 6 1 5 1 6 2 5 2 7 4 6 4 17 14 16 14
result:
ok moves = 8
Test #12:
score: 0
Accepted
time: 1ms
memory: 5740kb
input:
49 41 CBCCBCCBCCBCCBCCCBBCCBCBBCCCBBCCBCBCBCBCCCCBCBCCB BCCCCBCBBBBCBCBBBBBCBBBBCCCCBCBBCBBCBBBBCBCBCBBBC
output:
38 3 1 2 1 5 3 4 3 7 5 6 5 9 9 8 9 11 13 10 13 14 15 13 15 14 16 13 16 16 17 15 17 17 20 16 20 17 30 16 30 20 32 19 32 20 38 19 38 22 45 21 45 23 46 22 46 24 48 23 48 25 49 24 49 30 2 29 2 32 7 31 7 35 13 34 13
result:
ok moves = 38
Test #13:
score: 0
Accepted
time: 0ms
memory: 7728kb
input:
114 8 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
output:
0
result:
ok moves = 0
Test #14:
score: 0
Accepted
time: 1ms
memory: 5752kb
input:
266 28 CBBCBBCCCCBCBBCBBBCBCBCBCBBCBCBBCCCCBCCCCCBCCBBCCBBCBCBBCCCCCCBBBCCCBCCBCBBCCCBCCCCCCBCBBCCCBCBBCCBCBBBCBCCCBBCBCCCCBBCBBCBBCCBBCCCCCBBCCCBCCCCCCCCBBBBBBCBCCBCCCCBBCBBBBCBCCCCCCCBCBBCBCCCCCCCCCCCBBBBCCCCBCBCCCBCCCCCCCCCBCBCCCBBBCCCBCCBCBBCBCCCCCCBCBCCCCBCBCCBCCCCBCB CCBCBCBBCBCBBCBCCCBBBCBCBB...
output:
206 3 6 2 6 3 14 2 14 4 21 3 21 4 22 3 22 8 24 7 24 9 30 8 30 9 33 8 33 10 34 9 34 10 38 9 38 10 39 9 39 11 44 10 44 12 45 11 45 13 47 12 47 14 49 13 49 14 51 13 51 15 53 14 53 18 55 17 55 20 57 19 57 27 59 26 59 41 61 40 61 44 63 43 63 44 68 43 68 47 69 46 69 47 72 46 72 48 73 47 73 50 74 49 74 50 ...
result:
ok moves = 206
Test #15:
score: 0
Accepted
time: 1ms
memory: 7700kb
input:
620 443 BBBBBBCBBBCBBCBCBCBBBBCCCBCCBCBBBBBBCCCBBBCCBBCBCBCBBCCCCBCBBCBCCCCBBBBBBCCCCCBBBBCCBCBBBBBCBCBBCBCBCCCCBCBBCBBBCBBBCCCBCCCBBBBBCCBBCCBBBCCBCCBCBBCBCCCCCCCCCBCBCBBBCBBCBBCBBBBBBBCCBBBBBBBBBBCBBCBBCBBCCCBBCCBBBBCCCBBBBBBCBBBBBBBBCBBCBCBBBCCBBBBCCBBBCBCBCBBBBBCBBCBBBBCBBBBCCBBBCBBBBBCBBCCCCBCC...
output:
484 8 1 7 1 11 2 10 2 13 3 12 3 14 6 13 6 15 8 14 8 19 11 18 11 19 14 18 14 19 15 18 15 20 20 19 20 20 26 19 26 21 27 20 27 27 28 26 28 27 34 26 34 27 36 26 36 30 37 29 37 30 43 29 43 32 44 31 44 33 45 32 45 34 47 33 47 36 49 35 49 36 52 35 52 36 57 35 57 36 59 35 59 37 60 36 60 39 62 38 62 40 64 39...
result:
ok moves = 484
Test #16:
score: 0
Accepted
time: 0ms
memory: 9744kb
input:
1446 646 CCCBCCCCCCCBBCCBBCCCCBBCCCBBCCCCCCCCCCCCCCCBCCCCCCCCBBCCBBCCCBCBBBCCCCBBCCCCCCCCCCCBCBCCCBBCCCCBBCBCBCCCCCCCBCCCCCCCBCCBCBBCCCCCCCCCCCCBCCCBCCCCCCBCCCBCCCCCBBCCCBBCCCBBBCCBCCBCCBBBCBCBCCCCBCBCCCBCCCCBBCCCCCCCBCCCCBCCCBBBCCCBCCBBCCCCBCCCBBCBCCCCCBBCCBCCCCCCBCCCCCCCCCCCCCCBCCCCCBCBCCCCBCCCCCB...
output:
874 5 3 4 3 12 4 11 4 12 5 11 5 14 6 13 6 14 8 13 8 18 11 17 11 18 15 17 15 21 19 20 19 21 20 20 20 36 23 35 23 44 24 43 24 44 25 43 25 46 26 45 26 46 27 45 27 49 30 48 30 50 33 49 33 50 36 49 36 50 38 49 38 54 42 53 42 54 46 53 46 65 48 64 48 66 49 65 49 69 50 68 50 69 51 68 51 73 65 72 65 73 67 72...
result:
ok moves = 874
Test #17:
score: 0
Accepted
time: 3ms
memory: 9832kb
input:
3374 2755 BCBBCBBBCBBBBBBBBBCCBBBBBBBCCBBCBBCBBBBBCBBBBBBBBCBBBBBBBBBBBBCBBBCCBBBBCBBBBBCBBBBBCBBBBCBBBBBBBBBCBBBBBBBBBBBCBBBBBBBCBBBBBBBBBBCCBBBBBBBBBCBBCBBBCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCBBBCBBCBBBBBBBBBBBBBBCCBCBCBCBBBBCBBBCBBBBBBBBCBBCBCBBCBCCBBBBBBBBBBBCCBBBBBBBBBBBBBBBBBCBBBBBBBBBBB...
output:
1216 3 6 2 6 5 11 4 11 8 21 7 21 17 22 16 22 17 28 16 28 24 29 23 29 24 40 23 40 26 62 25 62 28 63 27 63 33 65 32 65 41 77 40 77 53 83 52 83 56 93 55 93 56 109 55 109 60 115 59 115 65 119 64 119 70 121 69 121 74 124 73 124 83 126 82 126 94 130 93 130 101 133 100 133 111 134 110 134 111 135 110 135 1...
result:
ok moves = 1216
Test #18:
score: 0
Accepted
time: 58ms
memory: 9860kb
input:
7872 7827 BCBBCBCBBCCBCBBBCCCBBBBBBBCBBBBCCBCCBCBBBBBBCBBCBBBCCCBBBCCCCBCBBBBCBBCCBBBBCCBBCBBBCBCBBCBCBBCCBBBCCBBBBCCBBCBBBBBBCBBBBBBBBCCBBCCCCBCCCBBCCCBBCBCBBBCBBBBCBBBBCBCBBBCCBBCCCCBBBCBBCCBBBBBBCBBBBCCCBBBCCCBBCCCBBBBBBCCBBBCCCCBBBCBBCBCCBBBCCCCBCBBCCBBBBCCBBBCBBCBBBCBBBCBBBBCCBBBBBCCBCBCBBBBBBB...
output:
5928 3 1 2 1 5 4 4 4 6 5 5 5 8 7 7 7 8 9 7 9 9 14 8 14 12 17 11 17 12 19 11 19 12 20 11 20 19 21 18 21 23 23 22 23 23 26 22 26 24 29 23 29 24 30 23 30 25 32 24 32 31 37 30 37 33 38 32 38 36 42 35 42 36 44 35 44 36 45 35 45 39 48 38 48 39 54 38 54 39 57 38 57 39 58 38 58 40 59 39 59 44 70 43 70 46 71...
result:
ok moves = 5928
Test #19:
score: 0
Accepted
time: 168ms
memory: 7832kb
input:
18368 17997 CBBBBBBBBBBCBBBBBBBBBBBBBBCBBCCBBBBBBBBBBBBBCBCBBBBBBBBCBBBBBCBBBBBBBBBBBBBBCBBBBBBBBBBCBBBCBCBBBBBCBCBBCBBBBBBBBBBBBBCCCBBBBBBCBBBBCBCBBCBBBBBCBBBBBBBCCBBBBCCBCBBBBBBBBBBBBCBBBBBBBBCBCBBBBBBBBCBCBBBBBBBBBBBCBBBBCCBBBBBBBCBBBBBBBBBBBBBBBCCBBCBCBBCBCBBBCBBBBBBBBBBBBBCBBCBBBBBBBCCCBBBBBBBB...
output:
7330 2 1 1 1 12 2 11 2 26 8 25 8 28 18 27 18 28 24 27 24 41 35 40 35 42 36 41 36 50 38 49 38 55 50 54 50 69 51 68 51 79 53 78 53 82 54 81 54 83 55 82 55 88 56 87 56 89 59 88 59 91 65 90 65 104 67 103 67 104 80 103 80 104 83 103 83 110 87 109 87 114 100 113 100 115 104 114 104 117 115 116 115 122 129...
result:
ok moves = 7330
Test #20:
score: 0
Accepted
time: 279ms
memory: 9960kb
input:
42858 28689 CCCCCCCCCCCCCCCCCCCCBCCCBBCCCBCCCCCCCCCBCCCCCCCBCCCBCCCCCBCCCCCCCCBCCBCCBCCCCCCCCCCCCCCCCCBCCCCCCCCCBCCCCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCCCCCCCCCCCCCCCCCBBCCCCCCCCCCCCCCBBCCCBCCCCCCCCCCBCCCCCCCBCCCCBCBCCCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCCCBCBCCCCCCCCCCCCCCBCCCCCCCCBCCCCCCCCCCCCCCCCCC...
output:
8086 22 1 21 1 25 9 24 9 25 24 24 24 28 33 27 33 37 38 36 38 44 47 43 47 47 76 46 76 52 85 51 85 60 93 59 93 62 99 61 99 64 108 63 108 81 122 80 122 90 123 89 123 94 131 93 131 122 160 121 160 139 170 138 170 139 183 138 183 153 187 152 187 153 210 152 210 156 212 155 212 166 237 165 237 173 243 172...
result:
ok moves = 8086
Test #21:
score: 0
Accepted
time: 2190ms
memory: 10152kb
input:
100002 40466 BBBBBBBCCBCBCCBCBBBBCCBBCBBBBBBBBBBCBBBBCBBBBBCBBBBBBBBBCBBBCBBBCCBCBCBBBBBBCBBBBBBBCBBBBBCBBBBCBCBCBBBBBBBBCBBBBBBBBCBCBBBBCBBBBBBBBBBBBBCBCBBCBBBBBBBBBBBCBBBBBBBCBCBCBCBBBBBBBBCBCBBBBBBBBCBBBBBBBBCBCCBBBCCBBCBBCBBBBBBBBBBCBBBCBBBBBBBBBBBBCBBCCBBCBBCBBBBCBBBBCBBBCCBBBCBBBBBBBCBBBBCBBBC...
output:
45728 9 3 8 3 9 4 8 4 10 22 9 22 11 35 10 35 11 37 10 37 12 42 11 42 16 43 15 43 16 47 15 47 18 62 17 62 28 64 27 64 32 65 31 65 37 74 36 74 46 76 45 76 49 79 48 79 52 84 51 84 52 96 51 96 53 108 52 108 54 109 53 109 60 111 59 111 67 113 66 113 72 128 71 128 76 130 75 130 77 136 76 136 78 139 77 139...
result:
ok moves = 45728
Test #22:
score: -100
Time Limit Exceeded
input:
233338 159967 CCBCBBCCCCBBCCCCCCCCBCCCBCCCCBCCBCCCCCCCCCBCBCCBBCBBCCCCBCCCCCCCCCCCCCCCCCCCBCCBCCBBCBCCBBBCCBCCCCBBCCCBCCCCCCCCCCCBCCBCCCCCCCCBCCCBBCBCCCBCCCCCBCCBCCBCCCCCCCBCCCCCBCCBBCCCCCCCBCCCCCCCCBBBCCCCCCCCCCCCBBBCCCBBCCBCBCCCCCCCCCBCCCCBCCCCCCCCBBCCCCBCCCCBCCCBCCCBCCCCCBCCCCCBBCCCBCCCCCCCCCCCCC...