请问这个代码该怎么写?

题目描述
经过九九八十一难,唐僧和他徒弟们终于到了西天。幽静的雷音寺中包含了 n 个房间,每个房间中 k 本经书,每本经书都有一定的价值。由于时间限制,每个房间只够拿一本经书,很显然,肯定拿那本价值最大的经书。

输入描述
输入数据的第一行是房间数 n。接下来的 n 行每行描述了房间的经书情况:第一个数是经书的本数 k,然后是 k 个整数,表示每一本经书的价值。

输出描述
占一行,唐僧他们总共能拿到经书的最大价值(在 long 范围以内)。

样例输入
4

3 2 2 5

5 3 3 4 4 1

2 30 23

5 10 20 30 20 30

样例输出
69

#include<stdio.h>
int main()
{
    int max,n,k,kd,sum=0;
    scanf("%d",&n);
    while( n-- )
    {
        scanf("%d",&k);
        max = 0;
        while( k-- )
        {
            scanf("%d",&kd);
            max = max > kd ? max : kd;
        }
        sum += max;
    }
    printf("%d",sum);
}

#include

int main()
{
/* 经书问题 */
int n;//n个房间
int k;//k本书
int v[99][99];

//获取输入的房间数、经书本数、经书价值
scanf("%d",&n);
for (int i=0;i<n;i++)
{
    scanf("%d",&k);
    v[i][0]=k;

    for (int j=1;j<=k;j++)
    {
        scanf("%d",&v[i][j]);
    }
}

//求最大价值
long v=0;
for (int i=0;i<n;i++)
{
    k=v[i][0];
    long v1=0;
    for (int j=1;j<=k;j++)
    {
        if (v1<v[i][j]) v1=v[i][j];
    }
    v+=v1;
}

printf("Value = %l", v);

return 0;
}

#include<stdio.h>
int main()
{
    int max,n,k,kd,i;
        int sum=0;
    scanf("%d",&n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d",&k);
        max = 0;
        while( k-- )
        {
            scanf("%d",&kd);
            max = max > kd ? max : kd;
        }
        sum += max;
    }
    printf("%d",sum);
}

#include
int main(void)
{
int n,k,i,a,max,b,j;
int sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&k);
scanf("%d",&a);
max=a;
for(j=1;j< k ;j++)
{
scanf("%d",&b);
if(b>=a)
max=b;

    }
    sum+=max;
}
printf("%d",sum);
return 0;

}