2178: 图像叠加

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:21 解决:15

题目描述

给出两幅相同大小的黑白图像(用0-1矩阵)表示,0表示白点,1表示黑点,求两幅图像叠加后的图像。

说明:若两幅图像在相同位置上的像素点都是白色,叠加后为白色,否则为黑色。

输入

第一行包含两个整数m和n,表示图像的行数和列数,中间用单个空格隔开。1 <= m <= 100, 1 <= n <= 100。 

之后m行,每行n个整数0或1,表示第一幅黑白图像上各像素点的颜色。相邻两个数之间用单个空格隔开。

 之后m行,每行n个整数0或1,表示第二幅黑白图像上各像素点的颜色。相邻两个数之间用单个空格隔开。

输出

m行,每行n个整数,表示叠加后黑白图像上各像素点的颜色。

样例输入 复制

3 3
1 0 1
0 0 1
1 1 0
1 1 0
0 0 1
0 0 1

样例输出 复制

1 1 1
0 0 1
1 1 1

提示

#include<bits/stdc++.h>
using namespace std;

int a[110][110],b[110][110],m,n;

int main(){
    cin>>m>>n;
    for (int i=1;i<=m;i++) {
    	for (int j=1;j<=n;j++) {
    		cin>>a[i][j];
		}
	}
    for (int i=1;i<=m;i++) {
    	for (int j=1;j<=n;j++) {
    		cin>>b[i][j];
		}
	}
    for (int i=1;i<=m;i++) {
    	for (int j=1;j<=n;j++) {
    	    if (a[i][j]==0&&b[i][j]==0) {
    	    	cout<<0<<" ";
			}else {
				cout<<1<<" ";
			}	
		}
		cout<<endl;
	}    
	return 0;
}