目录
题目
思路
自己也很懵的一道题(不知道自己怎么就对了)。。。只要对于所给的俯视图上值为$1$的位置输出这个位置的前视图和左视图中的较小值就行了。
$Code$
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#define MAXN 101
using namespace std;
int n,m,h;
int qian[MAXN],zuo[MAXN];
int ans[MAXN][MAXN],map[MAXN][MAXN];
inline void read(int &T){
int x=0;bool f=0;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=!f;c=getchar();}
while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
T=f?-x:x;
}
int main(){
read(n),read(m),read(h);
for(int i=1;i<=m;++i) read(qian[i]);
for(int i=1;i<=n;++i) read(zuo[i]);
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
read(map[i][j]);
}
}
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
if(map[i][j]){
ans[i][j]=min(zuo[i],qian[j]);
}
}
}
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
printf("%d ",ans[i][j]);
}
puts("");
}
return 0;
}