Codeforces Round #369 (Div. 2) B. Chris and Magic Square 水题
B. Chris and Magic Square
题目连接:
http://www.codeforces.com/contest/711/problem/B
Description
ZS the Coder and Chris the Baboon arrived at the entrance of Udayland. There is a n × n magic grid on the entrance which is filled with integers. Chris noticed that exactly one of the cells in the grid is empty, and to enter Udayland, they need to fill a positive integer into the empty cell.
Chris tried filling in random numbers but it didn't work. ZS the Coder realizes that they need to fill in a positive integer such that the numbers in the grid form a magic square. This means that he has to fill in a positive integer so that the sum of the numbers in each row of the grid (), each column of the grid (), and the two long diagonals of the grid (the main diagonal — and the secondary diagonal — ) are equal.
Chris doesn't know what number to fill in. Can you help Chris find the correct positive integer to fill in or determine that it is impossible?
Input
The first line of the input contains a single integer n (1 ≤ n ≤ 500) — the number of rows and columns of the magic grid.
n lines follow, each of them contains n integers. The j-th number in the i-th of them denotes ai, j (1 ≤ ai, j ≤ 109 or ai, j = 0), the number in the i-th row and j-th column of the magic grid. If the corresponding cell is empty, ai, j will be equal to 0. Otherwise, ai, j is positive.
It is guaranteed that there is exactly one pair of integers i, j (1 ≤ i, j ≤ n) such that ai, j = 0.
Output
Output a single integer, the positive integer x (1 ≤ x ≤ 1018) that should be filled in the empty cell so that the whole grid becomes a magic square. If such positive integer x does not exist, output - 1 instead.
If there are multiple solutions, you may print any of them.
Sample Input
3
4 0 2
3 5 7
8 1 6
Sample Output
9
Hint
题意
给你一个\(n*n\)的矩阵,这个矩形是魔法矩阵的话,要求每一行,每一列,对角线的数的和都相同。
现在给你一个矩阵,里面恰好有一个空没有填数,问你是否能够使得这个矩阵成为魔法矩阵。
如果可以,输出应该填的数的大小。
题解:
先算出一行没有空的值的和,然后再去填这个数,然后再 去check每一行,每一列就好了。
代码
#include<bits/stdc++.h>
using namespace std;
const int maxn = 510;
long long a[maxn][maxn];
int main()
{
int n,x,y;
scanf("%d",&n);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
{
scanf("%lld",&a[i][j]);
if(a[i][j]==0)x=i,y=j;
}
if(n==1)
{
printf("1");
return 0;
}
int ax=1;
while(ax==x)ax++;
long long sum = 0;
for(int i=1;i<=n;i++)
sum+=a[ax][i];
long long tmp=0;
for(int i=1;i<=n;i++)
tmp+=a[x][i];
a[x][y]=sum-tmp;
if(a[x][y]<=0)
{
printf("-1\n");
return 0;
}
for(int i=1;i<=n;i++)
{
tmp=0;
for(int j=1;j<=n;j++)
tmp+=a[i][j];
if(tmp!=sum)
{
printf("-1\n");
return 0;
}
}
for(int j=1;j<=n;j++)
{
tmp=0;
for(int i=1;i<=n;i++)
tmp+=a[i][j];
if(tmp!=sum)
{
printf("-1\n");
return 0;
}
}
tmp = 0;
for(int i=1;i<=n;i++)
tmp+=a[i][i];
if(tmp!=sum)
{
printf("-1\n");
return 0;
}
tmp=0;
for(int i=1;i<=n;i++)
tmp+=a[i][n-i+1];
if(tmp!=sum)
{
printf("-1\n");
return 0;
}
printf("%lld\n",a[x][y]);
}
Codeforces Round #369 (Div. 2) B. Chris and Magic Square 水题的更多相关文章
- Codeforces Round #369 (Div. 2) B. Chris and Magic Square (暴力)
Chris and Magic Square 题目链接: http://codeforces.com/contest/711/problem/B Description ZS the Coder an ...
- Codeforces Round #369 (Div. 2) A. Bus to Udayland (水题)
Bus to Udayland 题目链接: http://codeforces.com/contest/711/problem/A Description ZS the Coder and Chris ...
- Codeforces Round #368 (Div. 2) A. Brain's Photos (水题)
Brain's Photos 题目链接: http://codeforces.com/contest/707/problem/A Description Small, but very brave, ...
- codeforces 711B B. Chris and Magic Square(水题)
题目链接: B. Chris and Magic Square 题意: 问在那个空位子填哪个数可以使行列对角线的和相等,就先找一行或者一列算出那个数,再验证是否可行就好; AC代码: #include ...
- Codeforces Round #373 (Div. 2) C. Efim and Strange Grade 水题
C. Efim and Strange Grade 题目连接: http://codeforces.com/contest/719/problem/C Description Efim just re ...
- Codeforces Round #185 (Div. 2) A. Whose sentence is it? 水题
A. Whose sentence is it? Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/ ...
- Codeforces Round #313 (Div. 2) A. Currency System in Geraldion 水题
A. Currency System in Geraldion Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/c ...
- Codeforces Round #373 (Div. 2) A. Vitya in the Countryside 水题
A. Vitya in the Countryside 题目连接: http://codeforces.com/contest/719/problem/A Description Every summ ...
- Codeforces Round #371 (Div. 2) A. Meeting of Old Friends 水题
A. Meeting of Old Friends 题目连接: http://codeforces.com/contest/714/problem/A Description Today an out ...
随机推荐
- argunlar 1.0.0 【hello,world】
<!DOCTYPE html><html lang="en" ng-app><head> <meta charset="U ...
- 第5月第15天 php email
1. <?php require_once "Mail.php"; $from = "luckyeggs<fuping304@163.com>" ...
- nested exception is com.svorx.core.dao.PersistenceException
在quartz定时执行任务的时候,hibernate报错,在只读事务中进行了update语句: [ERROR] 2018/08/03 10:35:00,827 org.quartz.core.JobR ...
- 【黑客免杀攻防】读书笔记10 - switch-case分支
0x1 switch-case分支 switch-case其实就是if-else语句的另一种体现形式.但大于3之后的switchc-case.编译器会对代码进行优化. 1.1 简单switch-cas ...
- Linux TTY驱动--Serial Core层【转】
转自:http://blog.csdn.net/sharecode/article/details/9197567 版权声明:本文为博主原创文章,未经博主允许不得转载. 接上一节: Linux TTY ...
- Linux Power Managment详解 【转】
转自:http://blog.chinaunix.net/uid-24517893-id-254740.html Linux Power Managment 谨以此文纪念过往的岁月 一.前言 在这个对 ...
- innobackupex做MySQL增量备份及恢复【转】
创建备份用户 mysql> grant process,reload,lock tables,replication client on *.* to 'backup'@'localhost' ...
- Tomcat优化步骤【转】
一.Tomcat的缺省是多少,怎么修改 Tomcat的缺省端口号是8080.修改Tomcat端口号:1.找到Tomcat目录下的conf文件夹2.进入conf文件夹里面找到server.xml文件3. ...
- centos:SSH登录时间很慢
vi /etc/ssh/sshd_config GSSAPIAuthentication 改为 no 开启UseDNS,值改为 no service sshd restart
- ntpdate时间同步
为什么需要网络同步时间: Linux服务器运行久时,系统时间就会存在一定的误差,一般情况下可以使用date命令进行时间设置,但在做数据库集群分片等操作时对多台机器的时间差是有要求的,此时就需要使用nt ...