问题描述
小蓝拥有 n×n 大小的棋盘,一开始棋盘上全都是白子。小蓝进行了 m 次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色,黑色棋子变为白色)。请输出所有操作做完后棋盘上每个棋子的颜色。
输入格式
输入的第一行包含两个整数 n, m,用一个空格分隔,表示棋盘大小与操作数。
接下来 m 行每行包含四个整数 x1,y1,x2,y2,相邻整数之间使用一个空格分隔,表示将在 x1至x2行和y1至y2列中的棋子颜色取反。
输出格式
输出 n 行,每行 n 个 0 或 1 表示该位置棋子的颜色。如果是白色则输出 0,否则输出 1。
样例输入
3 3 1 1 2 2 2 2 3 3 1 1 3 3
样例输出
001 010 100
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n=scan.nextInt();
int[][] a=new int[n][n];
int m=scan.nextInt();
for(int i=1;i<=m;i++){
int x1=scan.nextInt();
int y1=scan.nextInt();
int x2=scan.nextInt();
int y2=scan.nextInt();
for(int j=x1-1;j<=x2-1;j++){
for(int k=y1-1;k<=y2-1;k++){
if(a[j][k]==0){
a[j][k]=1;
}
else{
a[j][k]=0;
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
System.out.print(a[i][j]);
}
System.out.println();
}
scan.close();
}
}