机翻版:
Luca有一个由n个轮子组成的密码,每个轮子上都有一个数字a;写在上面。在车轮上,他移动了一下。Eachmove是两种类型之一:
·向上移动(表示BYU):它将I位数增加1。在9上移动后,它将变为0。
。向下移动(用D表示):它将I位数减少1。在应用向下移动0之后,它变成9。
999900001111
示例forn=4.当前序列
是万。
卢卡知道车轮的最终顺序和每个车轮的移动。帮他找到原始序列并破解密码。
输入
第一行包含单个整数(1<tS 100)--测试用例的数目。
每个测试的第一行包含一个整数(1스n<100)--车轮数。
第二行包含n个整数;(0<a;<9)--在执行所有动作后,数字显示第一轮。
然后是n行,其i-th包含整数b;(1으b;S 10)和b;字符为U或D-在i-上执行的移动数。
车轮和动作。U和D分别代表向上移动和向下移动。
输出量
对于每个测试用例,输出n个空格分隔的数字--密码的起始序列。
样本1
输入副本
输出拷贝
三
九三一
04969
3 DDD
4 UDUU
2 DL
)9
G DDDDDDD
10个UUUUUU
8 UUDUUDDD
)UUUUUUU4
注
在第一个测试用例中,我们可以证明初始序列是[2,1,1,在这种情况下,以下移动
进行了下列活动:
在第一轮:2-Y1-09。
第二轮:1-21-3.在第三轮:1 ID0-1。
最后的序列是[9,3,1J,与输入相匹配。
解题代码:
#include<bits/stdc++.h>
using namespace std;
int main( ) {
int ts,n;
int a[10];
cin>>ts;
for(int i=0;i<ts;i++){
cin>>n;
int t=1;
int b=n;
while(b>0){
b--;
cin>>a[t];
t++;
}
b=n;
int z=1;
while(b>0){
b--;
int c;
cin>>c;
for(int q=1;q<=c;q++){
char w;
cin>>w;
if(w=='U'){a[z]--;if(a[z]==-1)a[z]=9;}
else if(w=='D'){a[z]++;if(a[z]==10)a[z]=0;}
else cout<<"ERROR";
}
z++;
}
for(int e=1;e<=n;e++){
cout<<a[e]<<" ";
}
cout<<endl;
}}