AcWing 3228. 俄罗斯方块
原题链接
简单
作者:
鹤唳_88
,
2024-12-12 23:06:07
,
所有人可见
,
阅读 1
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
using namespace std;
int map[18][18],backup[18][18];
int n;
int a[4][4];
bool fun(int x,int y){
memcpy(backup,map,sizeof backup);
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
if(a[i][j]){
int c=x+i;
int d=y+j;
backup[c][d]++;
if(backup[c][d]==2) return true;
}
}
}
return false;
}
int main(){
for(int i=0;i<15;i++){
for(int j=0;j<10;j++){
cin>>map[i][j];
}
}
for(int i=0;i<10;i++) map[15][i]=1;
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
cin>>a[i][j];
}
}
cin>>n;
n--;
for(int i=0;;i++){
if(fun(i,n)){
fun(i-1,n);
break;
}
}
for(int i=0;i<15;i++){
for(int j=0;j<10;j++){
cout<<backup[i][j]<<' ';
}
cout<<endl;
}
return 0;
}