记录编号 |
92670 |
评测结果 |
AAAAAAAAAA |
题目名称 |
考验 |
最终得分 |
100 |
用户昵称 |
bigmingod |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.007 s |
提交时间 |
2014-03-21 22:10:56 |
内存使用 |
0.35 MiB |
显示代码纯文本
#include<cstdio>
#include<cstdlib>
#define LL long long
using namespace std;
bool b[30];
LL g[30][30],ans,n;
bool f[30][2001];
LL gcd(LL x,LL y)
{ if(y==0) return x; else return gcd(y,x%y);}
LL lcm(LL x,LL y)
{ LL ret=x; ret=ret/gcd(x,y); ret*=y; return ret;}
void dfs(LL x,LL y)
{
if(x==2)
{
if(ans==0) {ans=y; return ;}
ans=lcm(ans,y);
return ;
}
if(f[x][y]) return ;
b[x]=true;
f[x][y]=true;
LL i;
for(i=1;i<=n;i++) if(g[x][i]>0&&b[i]==false) dfs(i,gcd(y,g[x][i]));
b[x]=false;
}
int main()
{
freopen("testz.in","r",stdin);
freopen("testz.out","w",stdout);
LL i,j;
scanf("%lld",&n);
for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%lld",&g[i][j]);
dfs(1,0);
printf("%lld",ans);
return 0;
}