OJ上一道最短路径的题(小弟我用dijkstra算法解答),总是wrong answer求大牛解答

OJ上一道最短路径的题(我用dijkstra算法解答),总是wrong answer求大牛解答
OJ上一道最短路径的题(小弟我用dijkstra算法解答),总是wrong answer求大牛解答
OJ上一道最短路径的题(小弟我用dijkstra算法解答),总是wrong answer求大牛解答

题目如上,我的代码如下,用到的算法Dijkstra

#include <iostream>
using namespace std;

const int minDist = 0;
const int maxDist = -1;
const int maxArray = 205;

void dijkstra(int N, int v, long long *dist, int f[][maxArray]) {
  bool s[maxArray];
  for (int i = 0; i < N; ++i) {
    dist[i] = f[v][i];
s[i] = false;
//cout << i << "->" << dist[i] << ' ';
  }
  //cout << endl;
  dist[v] = 0;
  s[v] = true;
  for (int i = 1; i < N; i++) {
    long long temp = 2000000;
int u = v;
for (int j = 0; j < N; ++j) {
  if (!s[j] && dist[j] < temp && dist[j] != maxDist) {
    temp = dist[j];
u = j;
  }
}
//cout << "Time: " << i << ' ' << u << "->" << temp << endl; 
s[u] = true;
for (int j = 0; j < N; ++j) {
  if (!s[j] && f[u][j] != maxDist) {
    long long newDist = dist[u] + f[u][j];
    //cout << newDist << "  " << dist[j] << endl;
    dist[j] = dist[j] == maxDist ? newDist : dist[j];
dist[j] = dist[j] < newDist ? dist[j] : newDist;
  }
}
  }
}

int main() {
  int N, M;
  int f[maxArray][maxArray];
  long long dist[maxArray];
  int S, T;
  while (cin >> N) {
   cin >> M;
    for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++) {