模拟代码,样例都过不去,求找错
#include<bits/stdc++.h>
using namespace std;
long long n,m,d[10001],a[1001],ans,f[1001],cnt[10001];
struct node
{
int p,q=0;
}b[1001];
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
int lcm(int a,int b)
{
return a*b/gcd(a,b);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>d[i];
for(int j=1;j<=d[i];j++)
{
cin>>a[j];
if(b[a[j]].p==0 and b[a[j]].q==0)
{
cnt[a[j]]++;
cnt[a[j]]*=d[i];
b[a[j]].p++;
b[a[j]].q+=d[i];
}
else
{
if(cnt[a[j]]==0) cnt[a[j]]++;
if(d[i]==b[a[j]].q) b[a[j]].p++;
else
{
cnt[a[j]]*=d[i];
b[a[j]].p=(lcm(b[a[j]].q,cnt[a[j]]))/(b[a[j]].q)+(lcm(b[a[j]].q,cnt[a[j]]))/(cnt[a[j]]);
b[a[j]].q=lcm(b[a[j]].q,cnt[a[j]]);
}
}
}
if(d[i]==0)
{
ans++;
for(int k=1;k<=ans;k++) f[k]=i;
}
}
for(int i=1;i<=ans;i++) cout<<b[f[i]].p/gcd(b[f[i]].p,b[f[i]].q)<<" "<<b[f[i]].q/gcd(b[f[i]].p,b[f[i]].q)<<endl;
return 0;
}