Language: C++

=#include <iostream>
#include <vector>
#include <queue>
#include <cstdio>
#define REP(i, a, n) for(int i = (a); i <= (n); i++)
#define INF 100000000.0
using namespace std;
struct state { int n, v, l; double t; };

int N, M, S, G;
vector<int> T[301], D[301], C[301];
int vd[3] = { -1, 0, 1 };
double dp[31][51];

class Compare {
public:
  bool operator() (struct state a, struct state b) {
    return a.t > b.t;
  }
};

int main(void) {
  while(cin >> N >> M, N) {
    cin >> S >> G;
    REP(i, 0, 300) {
      T[i].clear();
      D[i].clear();
      C[i].clear();
    }
    REP(i, 1, M) {
      int x, y, d, c; cin >> x >> y >> d >> c;
      T[x].push_back(y); D[x].push_back(d); C[x].push_back(c);
      T[y].push_back(x); D[y].push_back(d); C[y].push_back(c);
    }

    REP(i, 1, N) REP(j, 0, 51) dp[i][j] = INF;

    priority_queue<struct state, vector<struct state>, Compare> q;
    struct state first = { S, 0, -1, 0.0 };
    q.push(first);

    while(!q.empty()) {
      struct state c = q.top();
      q.pop();

      // cout << c.n << " " << c.v << " " << c.t << endl;

      dp[c.n][c.v] = min(dp[c.n][c.v], c.t);
      if(c.n == G && c.v == 1) break;

      for(int i = 0; i < T[c.n].size(); i++) {
        if(T[c.n][i] == c.l) continue;
        REP(j, 0, 3) {
          int v = c.v + vd[j];
          if(v <= 0 || C[c.n][i] < v) continue;
          double t = c.t + ((double) D[c.n][i] / v);
          struct state n = { T[c.n][i], v, c.n, t };
          if(n.t < dp[n.n][n.v]) q.push(n);
        }
      }
    }

    if(dp[G][1] < INF) printf("%.6f\n", dp[G][1]);
    else cout << "unreachable" << endl;
  }

  return 0;
}

Compiler output:
a.cc:1:2: error: stray '#' in program
    1 | =#include <iostream>
      |  ^
a.cc:1:1: error: expected unqualified-id before '=' token
    1 | =#include <iostream>
      | ^
In file included from /usr/include/c++/14/bits/stl_algobase.h:62,
                 from /usr/include/c++/14/vector:62,
                 from a.cc:2:
/usr/include/c++/14/ext/type_traits.h:164:35: error: 'constexpr const bool __gnu_cxx::__is_null_pointer' redeclared as different kind of entity
  164 |   __is_null_pointer(std::nullptr_t)
      |                                   ^
/usr/include/c++/14/ext/type_traits.h:159:5: note: previous declaration 'template<class _Type> constexpr bool __gnu_cxx::__is_null_pointer(_Type)'
  159 |     __is_null_pointer(_Type)
      |     ^~~~~~~~~~~~~~~~~
/usr/include/c++/14/ext/type_traits.h:164:26: error: 'nullptr_t' is not a member of 'std'
  164 |   __is_null_pointer(std::nullptr_t)
      |                          ^~~~~~~~~
In file included from /usr/include/c++/14/bits/stl_pair.h:60,
                 from /usr/include/c++/14/bits/stl_algobase.h:64:
/usr/include/c++/14/type_traits:295:27: error: 'size_t' has not been declared
  295 |   template <typename _Tp, size_t = sizeof(_Tp)>
      |                           ^~~~~~
/usr/include/c++/14/type_traits:666:33: error: 'nullptr_t' is not a member of 'std'
  666 |     struct is_null_pointer<std::nullptr_t>
      |                                 ^~~~~~~~~
/usr/include/c++/14/type_traits:666:42: error: template argument 1 is invalid
  666 |     struct is_null_pointer<std::nullptr_t>
      |                                          ^
/usr/include/c++/14/type_traits:670:48: error: template argument 1 is invalid
  670 |     struct is_null_pointer<const std::nullptr_t>
      |                                                ^
/usr/include/c++/14/type_traits:674:51: error: template argument 1 is invalid
  674 |     struct is_null_pointer<volatile std::nullptr_t>
      |                                                   ^
/usr/include/c++/14/type_traits:678:57: error: template argument 1 is invalid
  678 |     struct is_null_pointer<const volatile std::nullptr_t>
      |                                                         ^
/usr/include/c++/14/type_traits:984:26: error: 'size_t' has not been declared
  984 |   template<typename _Tp, size_t _Size>
      |                          ^~~~~~
/usr/include/c++/14/type_traits:985:40: error: '_Size' was not declared in this scope
  985 |     struct __is_array_known_bounds<_Tp[_Size]>
      |                                        ^~~~~
/usr/include/c++/14/type_traits:985:46: error: template argument 1 is invalid
  985 |     struct __is_array_known_bounds<_Tp[_Size]>
      |                                              ^
/usr/include/c++/14/type_traits:1429:37: error: 'size_t' is not a member of 'std'
 1429 |     : public integral_constant<std::size_t, alignof(_Tp)>
      |                                     ^~~~~~
/usr/include/c++/14/type_traits:1429:57: error: template argument 1 is invalid
 1429 |     : public integral_constant<std::size_t, alignof(_Tp)>
      |                                                         ^
/usr/include/c++/14/type_traits:1429:57: note: invalid template non-type parameter
/usr/include/c++/14/type_traits:1438:37: error: 'size_t' is not a member of 'std'
 1438 |     : public integral_constant<std::size_t, 0> { };
      |                                     ^~~~~~
/usr/include/c++/14/type_traits:1438:46: error: template argument 1 is invalid
 1438 |     : public integral_constant<std::size_t, 0> { };
      |                                              ^
/usr/include/c++/14/type_traits:1438:46: note: invalid template non-type parameter
/usr/include/c++/14/type_traits:1440:26: error: 'std::size_t' has not been declared
 1440 |   template<typename _Tp, std::size_t _Size>
      |                          ^~~
/usr/include/c++/14/type_traits:1441:21: error: '_Size' was not declared in this scope
 1441 |     struct rank<_Tp[_Size]>
      |                     ^~~~~
/usr/include/c++/14/type_traits:1441:27: error: template argument 1 is invalid
 1441 |     struct rank<_Tp[_Size]>
      |                           ^
/usr/include/c++/14/type_traits:1442:37: error: 'size_t' is not a member of 'std'
 1442 |     : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
      |                                     ^~~~~~
/usr/include/c++/14/type_traits:1442:65: error: template argument 1 is invalid
 1442 |     : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
      |                                                                 ^
/usr/include/c++/14/type_traits:1442:65: note: invalid template non-type parameter
/usr/include/c++/14/type_traits:1446:37: error: 'size_t' is not a member of 'std'
 1446 |     : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
      |                                     ^~~~~~
/usr/include/c++/14/type_traits:1446:65: error: template argument 1 is invalid
 1446 |     : public integral_constant<std::size_t, 1 + rank<_Tp>::value> { };
      |                                                                 ^
/usr/include/c++/14/type_traits:1446:65: note: invalid template non-type parameter
/usr/include/c++/14/type_traits:1451:32: error: 'size_t' was not declared in this scope
 1451 |     : public integral_constant<size_t, 0> { };
      |                                ^~~~~~
/usr/include/c++/14/type_traits:64:1: note: 'size_t' is defined in header '<cstddef>'; this is probably fixable by adding '#include <cstddef>'
   63 | #include <bits/version.h>
  +++ |+#include <cstddef>
   64 | 
/usr/include/c++/14/type_traits:1451:41: error: template argument 1 is invalid
 1451 |     : public integral_constant<size_t, 0> { };
      |                                         ^
/usr/include/c++/14/type_traits:1451:41: note: invalid template non-type parameter
/usr/include/c++/14/type_traits:1453:26: error: 'size_t' has not been declared
 1453 |   template<typename _Tp, size_t _Size>
      |                          ^~~~~~
/usr/include/c++/14/type_traits:1454:23: error: '_Size' was not declared in this scope
 1454 |     struct extent<_Tp[_Size], 0>
      |                       ^~~~~
/usr/include/c++/14/type_traits:1454:32: error: template argument 1 is invalid
 1454 |     struct extent<_Tp[_Size], 0>
      |                                ^
/usr/include/c++/14/type_traits:1455:32: error: 'size_t' was not declared in this scope
 1455 |     : public integral_constant<size_t, _Size> { };
      |                                ^~~~~~
/usr/include/c++/14/type_traits:1455:32: note: 'size_t' is defined in header '<cstddef>'; this is probably fixable by adding '#include <cstddef>'
/usr/include/c++/14/type_traits:1455:40: error: '_Size' was not declared in this scope
 1455 |     : public integral_constant<size_t, _Size> { };
      |                                        ^~~~~
/usr/include/c++/14/type_traits:1455:45: error: template argument 1 is invalid
 1455 |     : public integral_constant<size_t, _Size> { };
      |                                             ^
/usr/include/c++/14/type_traits:1455:45: error: template argument 2 is invalid
/usr/include/c++/14/type_traits:1457:42: error: 'size_t' has not been declared
 1457 |   template<typename _Tp, unsigned _Uint, size_t _Size>
      |                                          ^~~~~~
/usr/include/c++/14/type_traits:1458:23: error: '_Size' was not declared in this scope
 1458 |     struct extent<_Tp[_Size], _Uint>
      |                       ^~~~~
/usr/include/c++/14/type_traits:1458:36: error: template argument 1 is invalid
 1458 |     struct extent<_Tp[_Size], _Uint>
      |                                    ^
/usr/include/c++/14/type_traits:1463:32: error: 'size_t' was not declared in this scope
 1463 |     : public integral_constant<size_t, 0> { };
      |                                ^~~~~~
/usr/include/c++/14/type_traits:1463:32: note: 'size_t' is defined in header '<cstddef>'; this is probably fixable by adding '#include <cstddef>'
/usr/include/c++/14/type_traits:1463:41: error: template argument 1 is invalid
 1463 |     : public integral_constant<size_t, 0> { };
      |                                         ^
/usr/include/c++/14/type_traits:1463:41: note: invalid template non-type parameter
/usr/include/c++/14/type_traits:1857:26: error: 'size_t' does not name a type
 1857 |       { static constexpr size_t __size = sizeof(_Tp); };
      |                          ^~~~~~
/usr/include/c++/14/type_traits:1857:26: note: 'size_t' is defined in header '<cstddef>'; this is probably fixable by adding '#include <cstddef>'
/usr/include/c++/14/type_traits:1859:14: error: 'size_t' has not been declared
 1859 |     template<size_t _Sz, typename _Tp, bool = (_Sz <= _Tp::__size)>
      |              ^~~~~~
/usr/include/c++/14/type_traits:1859:48: error: '_Sz' was not declared in this scope
 1859 |     template<size_t _Sz, typename _Tp, bool = (_Sz <= _Tp::__size)>
      |                                                ^~~
/usr/include/c++/14/type_traits:1860:14: error: no default argument for '_Tp'
 1860 |       struct __select;
      |              ^~~~~~~~
/usr/include/c++/14/type_traits:1862:14: error: 'size_t' has not been declared
 1862 |     template<size_t _Sz, typename _Uint, typename... _UInts>
      |              ^~~~~~
/usr/include/c++/14/type_traits:1863:23: error: '_Sz' was not declared in this scope
 1863 |       struct __select<_Sz, _List<_Uint, _UInts...>, true>
      |                       ^~~
/usr/include/c++/14/type_traits:1863:57: error: template argument 1 is invalid
 1863 |       struct __select<_Sz, _List<_Uint, _UInts...>, true>
      |                                                         ^
/usr/include/c++/14/type_traits:1866:14: error: 'size_t' has not been declared
 1866 |     template<size_t _Sz, typename _Uint, typename... _UInts>
      |              ^~~~~~
/usr/include/c++/14/type_traits:1867:23: error: '_Sz' was not declared in this scope
 1867 |       struct __select<_Sz, _List<_Uint, _UInts...>, false>
      |                       ^~~
/usr/include/c++/14/type_traits:1867:58: error: template argument 1 is