信息
- ID
- 3239
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 153
- 已通过
- 24
- 上传者
#include<bits/stdc++.h>
using namespace std;
int a[10][10];
void l(){
for(int i=1;i<=4;i++){
int tmp[5]={},id=0;
for(int j=1;j<=4;j++){
if(a[i][j]!=0) tmp[++id]=a[i][j];
}
for(int j=1;j<=4;j++){
if(j<=id) a[i][j]=tmp[j];
else a[i][j]=0;
}
}
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++){
if(a[i][j]==0) continue;
if(a[i][j]==a[i][j+1]) a[i][j]*=2,a[i][j+1]=0;
}
}
for(int i=1;i<=4;i++){
int tmp[5]={},id=0;
for(int j=1;j<=4;j++){
if(a[i][j]!=0) tmp[++id]=a[i][j];
}
for(int j=1;j<=4;j++){
if(j<=id) a[i][j]=tmp[j];
else a[i][j]=0;
}
}
}
void r(){
for(int i=1;i<=4;i++){
int tmp[5]={},id=0;
for(int j=4;j>=1;j--){
if(a[i][j]!=0) tmp[++id]=a[i][j];
}
for(int j=4;j>=1;j--){
if(j>=4-id) a[i][j]=tmp[4-j+1];
else a[i][j]=0;
}
}
for(int i=1;i<=4;i++){
for(int j=4;j>=1;j--){
if(a[i][j]==0) continue;
if(a[i][j]==a[i][j-1]) a[i][j]*=2,a[i][j-1]=0;
}
}
for(int i=1;i<=4;i++){
int tmp[5]={},id=0;
for(int j=4;j>=1;j--){
if(a[i][j]!=0) tmp[++id]=a[i][j];
}
for(int j=4;j>=1;j--){
if(j>=4-id) a[i][j]=tmp[4-j+1];
else a[i][j]=0;
}
}
}
void u(){
for(int j=1;j<=4;j++){
int tmp[5]={},id=0;
for(int i=1;i<=4;i++){
if(a[i][j]!=0) tmp[++id]=a[i][j];
}
for(int i=1;i<=4;i++){
if(i<=id) a[i][j]=tmp[i];
else a[i][j]=0;
}
}
for(int j=1;j<=4;j++){
for(int i=1;i<=4;i++){
if(a[i][j]==0) continue;
if(a[i][j]==a[i+1][j]) a[i][j]*=2,a[i+1][j]=0;
}
}
for(int j=1;j<=4;j++){
int tmp[5]={},id=0;
for(int i=1;i<=4;i++){
if(a[i][j]!=0) tmp[++id]=a[i][j];
}
for(int i=1;i<=4;i++){
if(i<=id) a[i][j]=tmp[i];
else a[i][j]=0;
}
}
}
void d(){
for(int j=4;j>=1;j--){
int tmp[5]={},id=0;
for(int i=4;i>=1;i--){
if(a[i][j]!=0) tmp[++id]=a[i][j];
}
for(int i=4;i>=1;i--){
if(i>=4-id) a[i][j]=tmp[4-i+1];
else a[i][j]=0;
}
}
for(int j=4;j>=1;j--){
for(int i=4;i>=1;i--){
if(a[i][j]==0) continue;
if(a[i][j]==a[i-1][j]) a[i][j]*=2,a[i-1][j]=0;
}
}
for(int j=4;j>=1;j--){
int tmp[5]={},id=0;
for(int i=4;i>=1;i--){
if(a[i][j]!=0) tmp[++id]=a[i][j];
}
for(int i=4;i>=1;i--){
if(i>=4-id) a[i][j]=tmp[4-i+1];
else a[i][j]=0;
}
}
}
int main(){
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++) cin>>a[i][j];
}
int m;
cin>>m;
while(m--){
char op;
cin>>op;
if(op=='L') l();
else if(op=='R') r();
else if(op=='U') u();
else d();
}
for(int i=1;i<=4;i++){
for(int j=1;j<=4;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}