电子外贸网站建设,有哪些做搞笑视频的网站,加工平台制作,泉州大型网站建设描述 你有一些小球#xff0c;从左到右依次编号为1#xff0c;2#xff0c;3#xff0c;…#xff0c;n#xff0c; 你可以执行两种指令。其中A X Y表示把小球X移动到小球Y左边#xff0c;B X Y表示把小球X移动到小球Y右边。指令保证合法#xff0c;即X不等于Y。 输入 …描述 你有一些小球从左到右依次编号为123…n 你可以执行两种指令。其中A X Y表示把小球X移动到小球Y左边B X Y表示把小球X移动到小球Y右边。指令保证合法即X不等于Y。 输入 小球个数n。指令条数m和m条指令注意1≤n≤5000000≤m≤100000。 输出 从左到右输出最后的小球序列。 样例输入 6 2A 1 4B 3 5 样例输出 2 1 4 5 3 6 1 #include iostream2 #include cstring3 using namespace std;4 5 int m,n;//n个小球m条指令 6 7 int main()8 {9 int i,j,k;
10 char ch;//指令格式
11 int a,b;
12 int left[1000],right[1000];
13
14 while(cinnm)
15 {
16 if(1n)
17 {
18 cout1endl;
19 continue;
20 }
21 for(i0; in; i)
22 left[i1] i;
23 left[n1] n;
24 for(i0; in; i)
25 right[i] i1;
26
27 while(m--)
28 {
29 getchar();//吸收换行
30 cinchab;
31 right[left[a]]right[a];//删除a
32 left[right[a]]left[a];
33 if(chA)//a 移到b左边
34 {
35 left[a] left[b];
36 right[a] b;
37 right[left[b]] a;
38 left[b] a;
39 }
40 if(chB)
41 {
42 left[a] b;
43 right[a] right[b];
44 right[b] a;
45 left[right[b]] a;
46 }
47 }
48 //注意输出不可直接输出right[i]
49 int temp right[0];
50 couttemp;
51 for(i1; in; i)
52 {
53 temp right[temp];
54 cout temp;
55 }
56 coutendl;
57
58 }
59 return 0;
60 } 转载于:https://www.cnblogs.com/hxsyl/archive/2013/04/05/3000815.html