1 条题解
-
0
#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; }
信息
- ID
- 3239
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 158
- 已通过
- 24
- 上传者