时间限制: 1000 ms
内存限制: 256 MB
题目描述:
白仔手上有一个中国象棋中的马
现有n n 的棋盘,每个点上有一个数值(val)。
将马依次放到每个点(x,y)上,如果马的攻击范围内(一步能跳跃到的位置)的所有val值中,如果存在与k互质的val值,那么当前点(x,y)的key值为1,否则key值为(x,y)的val值。
最终输出整个棋盘所有点的key值
输入格式:
第一行一个正整数n
接下来一个n*n 的矩阵,每个正整数代表每个点的val值
最后一行一个正整数k
输出格式:
输出一个n*n 的矩阵,表示每个点的key值,同一行的key值之间用空格隔开
样例:
input
3
1 2 3
4 5 6
7 8 9
2
output
1 1 3
1 5 1
7 1 9
数据范围及提示
对于100%的数据,1<=n<=100,1<=矩阵中的val值<=10000 ,1<=k<=10000
注:判断互质如果写的过于麻烦会超时的。辗转相除总要会的吧.jpg
测试网站 https://turingjudge.com/contest/28/problem/A
#include <bits/stdc++.h>
using namespace std;
/*
. . .