输出是 0 0;请问哪里错了啊??跪!!

题目描述
给定n个点,点对之间至多有一条双向道路链接,每条道路要想通过则有一定的花费。
给定物体的路径,计算其花费。
输入
第一行两个整数n m t表示点的个数、道路条数和询问个数
接下来m行每行三个整数x y w,表示x和y之间有一条花费w的道路
接下里t行每行k+1个整数,第一个整数k表示这次询问的路径长度为k,接下来k个整数表示具体路径
输出
t行每行一个整数表示每次询问的路径花费
样例输入
4 3 2
1 2 1
2 3 1
3 4 1
3 1 2 3
3 2 3 4
样例输出
2
2

#include<cstdio>
using namespace std;

char a[105][105];
char b[105][105];
int main()
{
    int n,m,t,p,k;
    scanf("%d%d%d",&n,&m,&t);
    for(int i=0;i<m;i++)
    {
        scanf("%s%s%s",&a[i][0],&a[i][1],&a[i][2]);
    }
    for(int i=0;i<t;i++)
    {
        scanf("%d",&k);
        for(int l=0;l<k;l++)
        {
            scanf("%s",&b[i][l]);
            for(int j=l+1;j<k;j++)
            {
                if(b[i][l]==a[i][0] && b[i][j]==a[i][1])
                {
                    p=a[i][2];
                    p=p+p;
                }
            }
        }
    }
    for(int i=0;i<t;i++)
    {
        printf("%d\n",p);
    }
    return 0;
}

char a[105][105]
你的a是个char数组啊,不是字符串数组
你把字符串放到a[i][0],a[i][1],a[i][2]里面,那能放的下?