Language: C++

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <cmath>
#include <queue>
#include <deque>
#include <map>
#include <set>
#include <tuple>
#include <stack>
#include <bitset>
#include <utility>
#include<iomanip>
// #include <numeric>
using namespace std;



typedef unsigned long ul;
typedef unsigned long long ull;
typedef long long ll;
typedef vector<ll> vint;
typedef vector<vector<ll>> vvint;
typedef vector<string> vstring;
typedef vector<vector<string>> vvstring;
typedef vector<char> vchar;
typedef vector<vector<char>> vvchar;
typedef vector<long double> vdouble;
typedef vector<vector<long double>> vvdouble;
typedef vector<vector<vector<long double>>> vvvdouble;
typedef pair<ll,ll> pint;
typedef vector<pint> vpint;

#define rep(i,n) for(ll i=0;i<n;i++)
#define repf(i,f,n) for(ll i=f;i<n;i++)
#define repr(i,n) for(ll i=n-1;i>=0;i--)
#define mp make_pair
#define mt make_tuple
#define pb push_back
#define pf push_front
#define fi first
#define se second
#define INT_MAX 2147483647
#define LLONG_MAX 9223372036854775807
#define vmax(vec) *max_element(vec.begin(), vec.end())
#define vmin(vec) *min_element(vec.begin(), vec.end())
#define vsort(vec) sort(vec.begin(), vec.end())
#define vsortgr(vec) sort(vec.begin(), vec.end(), greater<ll>())
#define DIVIDER 1000000007


//
// struct Node{
//   vint children;
//   ll index;
//   ll prop;
// };



int dy[]={0, 0, 1, -1};
int dx[]={1, -1, 0, 0,};

// ll X,Y,Z,K;
// ll pmax = 30000000000;
// vint A,B,C;




// int binary_search(int key){
//  //isOKを満たす要素のうち最小のインデックスを返す。（要ソート）
//   int left = -1;
//   int right = N;
//
//   while(right - left > 1){
//     int mid = left + (right - left)/2;
//
//     if(isOK(mid, key)) right=mid;
//     else left=mid;
//   }
//
//   return right;
// }

// ll gcd(ll m, ll n){
//   if(m<n) swap(m,n);
//   if(n==0) return m;
//   return gcd(n, m%n);
// }

// ll get_pow(ll x, ll y){
//   ll ret=0;
//   ll temp = y;
//   while(true){
//     if(x<=temp) break;
//     ret++;
//     temp *= 2;
//   }
//   return ret;
// }






int main() {
  cout<<fixed<<setprecision(10);

  ll n,m,s,t;
  cin>>n>>m>>s>>t;
  s--;t--;

  vint u(m),v(m),a(m),b(m);
  rep(i,m){cin>>u[i]>>v[i]>>a[i]>>b[i]; u[i]--;v[i]--;}

  vvint edge(n);
  vvint cost_y(n, vint(n,-1));
  vvint cost_s(n, vint(n,-1));
  rep(i,m){
    edge[u[i]].pb(v[i]);
    edge[v[i]].pb(u[i]);
    cost_y[u[i]][v[i]] = a[i];
    cost_y[v[i]][u[i]] = a[i];
    cost_s[u[i]][v[i]] = b[i];
    cost_s[v[i]][u[i]] = b[i];  
  }

  vint dp_y(n, -1), dp_s(n, -1);

  queue<pair> q;
  q.push(mp(s, 0));
  dp_y[s] = 0;


  while(!q.empty()){
    auto p = q.front();
    q.pop();

    for(auto e:edge[p.fi]){
      
    }

    
  }




  cout << ans << endl;

}

















//


Compiler output:
a.cc: In function 'int main()':
a.cc:133:13: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class _Sequence> class std::queue'
  133 |   queue<pair> q;
      |             ^
a.cc:133:13: note:   expected a type, got 'pair'
a.cc:133:13: error: template argument 2 is invalid
a.cc:134:5: error: request for member 'push' in 'q', which is of non-class type 'int'
  134 |   q.push(mp(s, 0));
      |     ^~~~
a.cc:138:12: error: request for member 'empty' in 'q', which is of non-class type 'int'
  138 |   while(!q.empty()){
      |            ^~~~~
a.cc:139:16: error: request for member 'front' in 'q', which is of non-class type 'int'
  139 |     auto p = q.front();
      |                ^~~~~
a.cc:140:7: error: request for member 'pop' in 'q', which is of non-class type 'int'
  140 |     q.pop();
      |       ^~~
a.cc:152:11: error: 'ans' was not declared in this scope; did you mean 'abs'?
  152 |   cout << ans << endl;
      |           ^~~
      |           abs