这是一段别人写好的代码我想输入一个值再得出一个值怎么输入

这是一段别人写好的代码我想输入一个值再得出一个值怎么输入

class Solution {
public:
int timeToFlowerTree(vector &father, vector &time) {
int n = father.size(), id, t, maxt =0 ,i;
vector> map(n);//图的邻接表
for(i = 1; i < n; ++i)
map[father[i]].push_back(i);//from , to
queue> q;// id, time
q.push({0,0});
while(!q.empty())
{
id = q.front().first;
t = q.front().second;
maxt = max(maxt, t);
q.pop();
for(i = 0; i < map[id].size(); ++i)
{ //遍历邻接表
q.push(make_pair(map[id][i], t+time[map[id][i]]));
}
}
return maxt;
}
};

哪个值是你想改为输入的啊?又想输出哪个值呢?

添加额外参数m表示起始站点m(0<=m<n),返回的是从站点m出发的最长时间

class Solution
{
public:
    int timeToFlowerTree(vector<int> &father, vector<int> &time, int m)
    {
        int n = father.size(), id, t, maxt = 0, i;
        vector<vector<int>> map(n); //图的邻接表
        for (i = 1; i < n; ++i)
            map[father[i]].push_back(i); // from , to
        queue<pair<int, int>> q;         // id, time
        q.push({m, 0});
        while (!q.empty())
        {
            id = q.front().first;
            t = q.front().second;
            maxt = max(maxt, t);
            q.pop();
            for (i = 0; i < map[id].size(); ++i)
            { //遍历邻接表
                q.push(make_pair(map[id][i], t + time[map[id][i]]));
            }
        }
        return maxt;
    }
};