Language: C++

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdio>
#include <functional>
#include <numeric>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <utility>
#include <sstream>
#include <complex>

using namespace std;

#define FOR(i,a,b) for(long long i=(a);i<(b);i++)
#define REP(i,N) for(long long i=0;i<(N);i++)
#define ALL(s) (s).begin(),(s).end()
#define fi first
#define se second

#define PI acos(-1.0)
#define INF 1000000007

typedef long long ll;
typedef pair<ll, ll> P;
typedef pair<double, double> PD;
typedef pair<string, ll> PS;
typedef vector<ll> V;

struct edge{
	int to, cost, time;
	edge(int to, int cost, int time) :to(to), cost(cost), time(time){};
};

int n, m, a, b, cost, time, k, s, g, f;

ll mincost[1000], mintime[1000];
vector<edge> G[1000];

void dijkstra0(int start){
	fill(mincost, mincost + 1000, INF);
	mincost[start] = 0;
	priority_queue<P> que;
	que.push(P(0, start));

	while (!que.empty()){
		P p = que.top(); que.pop();
		int v = p.second;
		if (mincost[v] < p.first)continue;

		for (int i = 0; i < G[v].size(); i++){
			edge e = G[v][i];
			if (mincost[e.to] > mincost[v] + e.cost){
				mincost[e.to] = mincost[v] + e.cost;
				que.push(P(mincost[e.to], e.to));
			}
		}
	}
}

void dijkstra1(int start){
	fill(mintime, mintime + 1000, INF);
	mintime[start] = 0;
	priority_queue<P> que;
	que.push(P(0, start));

	while (!que.empty()){
		P p = que.top(); que.pop();
		int v = p.second;
		if (mincost[v] < p.first)continue;

		for (int i = 0; i < G[v].size(); i++){
			edge e = G[v][i];
			if (mintime[e.to] > mintime[v] + e.time){
				mintime[e.to] = mintime[v] + e.time;
				que.push(P(mintime[e.to], e.to));
			}
		}
	}
}

int main(){
	while (cin >> n >> m&&n + m){
		REP(i, n){
			cin >> a >> b >> cost >> time;
			G[a].push_back(edge(b, cost, time));
			G[b].push_back(edge(a, cost, time));
		}
		cin >> k;
		REP(i, k){
			cin >> s >> g >> f;
			if (f == 0){
				dijkstra0(s);
				cout << mincost[g] << endl;
			}
			else{
				dijkstra1(s);
				cout << mintime[g] << endl;
			}
		}
	}
}

Compiler output:
a.cc:39:23: error: 'int time' redeclared as different kind of entity
   39 | int n, m, a, b, cost, time, k, s, g, f;
      |                       ^~~~
In file included from /usr/include/pthread.h:23,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/gthr-default.h:35,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/gthr.h:157,
                 from /usr/include/c++/14/ext/atomicity.h:35,
                 from /usr/include/c++/14/bits/ios_base.h:39,
                 from /usr/include/c++/14/ios:44,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/time.h:76:15: note: previous declaration 'time_t time(time_t*)'
   76 | extern time_t time (time_t *__timer) __THROW;
      |               ^~~~
a.cc: In function 'int main()':
a.cc:89:47: error: no match for 'operator>>' (operand types are 'std::basic_istream<char>::__istream_type' {aka 'std::basic_istream<char>'} and 'time_t(time_t*) noexcept' {aka 'long int(long int*) noexcept'})
   89 |                         cin >> a >> b >> cost >> time;
      |                         ~~~~~~~~~~~~~~~~~~~~~ ^~ ~~~~
      |                                       |          |
      |                                       |          time_t(time_t*) noexcept {aka long int(long int*) noexcept}
      |                                       std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}
In file included from /usr/include/c++/14/iostream:42:
/usr/include/c++/14/istream:170:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  170 |       operator>>(bool& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:170:7: note:   conversion of argument 1 would be ill-formed:
a.cc:89:50: error: cannot bind non-const lvalue reference of type 'bool&' to a value of type 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'}
   89 |                         cin >> a >> b >> cost >> time;
      |                                                  ^~~~
/usr/include/c++/14/istream:174:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match)
  174 |       operator>>(short& __n);
      |       ^~~~~~~~
/usr/include/c++/14/istream:174:7: note:   conversion of argument 1 would be ill-formed:
a.cc:89:50: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'short int' [-fpermissive]
   89 |                         cin >> a >> b >> cost >> time;
      |                                                  ^~~~
      |                                                  |
      |                                                  time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:89:50: error: cannot bind rvalue '(short int)time' to 'short int&'
/usr/include/c++/14/istream:177:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  177 |       operator>>(unsigned short& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:177:7: note:   conversion of argument 1 would be ill-formed:
a.cc:89:50: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'short unsigned int' [-fpermissive]
   89 |                         cin >> a >> b >> cost >> time;
      |                                                  ^~~~
      |                                                  |
      |                                                  time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:89:50: error: cannot bind rvalue '(short unsigned int)time' to 'short unsigned int&'
/usr/include/c++/14/istream:181:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match)
  181 |       operator>>(int& __n);
      |       ^~~~~~~~
/usr/include/c++/14/istream:181:7: note:   conversion of argument 1 would be ill-formed:
a.cc:89:50: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'int' [-fpermissive]
   89 |                         cin >> a >> b >> cost >> time;
      |                                                  ^~~~
      |                                                  |
      |                                                  time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:89:50: error: cannot bind rvalue '(int)time' to 'int&'
/usr/include/c++/14/istream:184:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  184 |       operator>>(unsigned int& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:184:7: note:   conversion of argument 1 would be ill-formed:
a.cc:89:50: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'unsigned int' [-fpermissive]
   89 |                         cin >> a >> b >> cost >> time;
      |                                                  ^~~~
      |                                                  |
      |                                                  time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:89:50: error: cannot bind rvalue '(unsigned int)time' to 'unsigned int&'
/usr/include/c++/14/istream:188:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  188 |       operator>>(long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:188:7: note:   conversion of argument 1 would be ill-formed:
a.cc:89:50: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'long int' [-fpermissive]
   89 |                         cin >> a >> b >> cost >> time;
      |                                                  ^~~~
      |                                                  |
      |                                                  time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:89:50: error: cannot bind rvalue '(long int)time' to 'long int&'
/usr/include/c++/14/istream:192:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  192 |       operator>>(unsigned long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:192:7: note:   conversion of argument 1 would be ill-formed:
a.cc:89:50: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'long unsigned int' [-fpermissive]
   89 |                         cin >> a >> b >> cost >> time;
      |                                                  ^~~~
      |                                                  |
      |                                                  time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:89:50: error: cannot bind rvalue '(long unsigned int)time' to 'long unsigned int&'
/usr/include/c++/14/istream:199:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  199 |       operator>>(long long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:199:7: note:   conversion of argument 1 would be ill-formed:
a.cc:89:50: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'long long int' [-fpermissive]
   89 |                         cin >> a >> b >> cost >> time;
      |                                                  ^~~~
      |                                                  |
      |                                                  time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:89:50: error: cannot bind rvalue '(long long int)time' to 'long long int&'
/usr/include/c++/14/istream:203:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  203 |       operator>>(unsigned long long& __n)
      |       ^~~~~~~~
/usr/include/c++/14/istream:203:7: note:   conversion of argument 1 would be ill-formed:
a.cc:89:50: error: invalid conversion from 'time_t (*)(time_t*) noexcept' {aka 'long int (*)(long int*) noexcept'} to 'long long unsigned int' [-fpermissive]
   89 |                         cin >> a >> b >> cost >> time;
      |                                                  ^~~~
      |                                                  |
      |                                                  time_t (*)(time_t*) noexcept {aka long int (*)(long int*) noexcept}
a.cc:89:50: error: cannot bind rvalue '(long long unsigned int)time' to 'long long unsigned int&'
/usr/include/c++/14/istream:328:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; __istream_type = std::basic_istream<char>]' (near match)
  328 |       operator>>(void*& __p)
      |