能帮我看看问题出在哪里嘛

某次程序设计竞赛时,最终排名采用的排名规则如下:
根据成功做出的题数(设为solved)从大到小排序,若solved相同则按输入顺序确定排名先后顺序(请结合输出样例)。请确定最终排名并输出。
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。
每组测试数据先输入1个正整数n(1 ≤ n ≤ 100),表示参赛队伍总数。然后输入n行,每行包括1个字符串s(不含空格且长度不超过50)和1个正整数d(0 ≤d ≤ 15),分别表示队名和该队的解题数量。
输入样例
1
8
Team22 2
Team16 3
Team11 2
Team20 3
Team3 5
Team26 4
Team7 1
Team2 4
输出样例
1 Team3 5
2 Team26 4
3 Team2 4
4 Team16 3
5 Team20 3
6 Team22 2
7 Team11 2
8 Team7 1

img

输出样例
1 Team3 5
2 Team26 4
3 Team2 4
4 Team16 3
5 Team20 3
6 Team22 2
7 Team11 2
8 Team7 1

int n;int m,i,j;
scanf("%d",&n);char a[100][50];int b[100];
for(i=1;i<=n;i++)
{
    scanf("%d",&m);
    
    
    for(j=0;j<m;j++)
    {
        scanf("%s %d",a[j],&b[j]);
    }
}
int min=b[0];
for(i=0;i<m-1;i++)
    for(j=0;j<m-1-i;j++)
    {
        if(b[j]<b[j+1])
        {
            int t=b[j];
            b[j]=b[j+1];
            b[j+1]=t;
            char c[50];
            strcpy(c,a[j]);
            strcpy(a[j],a[j+1]);
            strcpy(a[j+1],c);
        }
    }
int d[100];
for(i=0;i<m;i++)
    d[i]=i+1;
for(i=0;i<m;i++)
    printf("%d %s %d\n",d[i],a[i],b[i]);

大括号不对啊

int n;int m,i,j,p,q;
scanf("%d",&n);char a[100][50];int b[100];
for(p=1;p<=n;p++)
{
    scanf("%d",&m);
    
    for(q=0;q<m;q++)
    {
        scanf("%s %d",a[q],&b[q]);
    }
  for(i=0;i<m-1;i++)
    for(j=0;j<m-1-i;j++)
    {
        if(b[j]<b[j+1])
        {
            int t=b[j];
            b[j]=b[j+1];
            b[j+1]=t;
            char c[50];
            strcpy(c,a[j]);
            strcpy(a[j],a[j+1]);
            strcpy(a[j+1],c);
        }
    }

     for(i=0;i<m;i++)
        printf("%d %s %d\n",i+1,a[i],b[i]);
}