奇奇怪怪的问题又增加了......
竟无法输出??(虽然肯定T了)
#include<bits/stdc++.h>
using namespace std;
#define N 100001
int a[N][6],s[N],fm[N],fz[N],as[N],len=0,n,m;
inline int read()
{
int x=0;
char c=getchar();
while(c<'0'||c>'9') c=getchar();
while(c>='0'&&c<='9')
{
x=(x<<1)+(x<<3)+(c^48);
c=getchar();
}
return x;
}
void jia(int x,int y)
{
int gcd=fm[x]*fm[a[x][y]]/__gcd(fm[x],fm[a[x][y]]);
fm[a[x][y]]=gcd;
fz[a[x][y]]=fz[a[x][y]]*gcd/fm[a[x][y]]+fz[x]*gcd/fm[x]/y;
return;
}
void ans(int i)
{
fm[i]/=s[i];
for(int j=1;j<=s[i];j++)
{
jia(i,j);
if(s[i]>0) ans(j);
}
}
signed main()
{
n=read();
m=read();
for(int i=1;i<=n;i++)
{
s[i]=read();
for(int j=1;j<=n;j++)
a[i][j]=read();
fm[i]=1;
if(s[i]==0) as[++len]=i,fm[i]=1;
}
for(int i=1;i<=m;i++)
if(s[i]!=0) ans(i);
for(int i=1;i<=len;i++) printf("%d %d\n",fz[i],fm[i]);
return 0;
}