SPJ
#include<bits/stdc++.h>
#include"testlib.h"
using namespace std;
bool issq(long a){
int b=sqrt(a);
return b*b==a;
}
int main(int argc,char*argv[]){
#define int long
registerTestlibCmd(argc, argv);
string w=ans.readString();
if(w=="No answer"){
string p=ouf.readString();
p=="No answer"?quitf(_ok,"Accepted"):quitf(_wa,"Wrong Answer");
return 0;
}
int m=inf.readLong(),n=inf.readLong();
int a[n][m];
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
a[i][j]=ouf.readLong();
if(!issq(a[i][j]))
quitf(_wa,"Wrong Answer");
}
for(int i=0;i<n;i++){
int lsum=0;
for(int j=0;j<m;j++)
lsum+=a[i][j];
if(!issq(lsum))
quitf(_wa,"Wrong Answer");
}
for(int j=0;j<m;j++){
int csum=0;
for(int i=0;i<n;i++)
csum+=a[i][j];
if(!issq(csum))
quitf(_wa,"Wrong Answer");
}
quitf(_ok,"Accepted");
}
题面
找出一个 n×m 的元素由完全平方数构成的矩形表格,使得每行每列的和也为完全平方数(必须小于 1017)。
一行 2 个整数 n,m。
n 行,每行 m 个整数,代表构造的矩形表格,若无解输出 No answer。
对于 100% 的数据,有 n,m≤15。