Submission #1265241

#TimeUsernameProblemLanguageResultExecution timeMemory
1265241vlomaczkOlympic Bus (JOI20_ho_t4)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
typedef long long ll;
using namespace __gnu_pbds;
using namespace std;

template <typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

struct Edge {
	ll a, b, c, d;
};

ll n, m;
ll M = 210, inf = 1e18;
vector<vector<ll>> g(M), gt(M);
vector<Edge> e;

vector<vector<ll>> dijkstra(ll s) {
	vector<vector<ll>> dist(M, vector<ll>(2, inf));
	dist[s][0] = 0;
	priority_queue<pair<ll, pair<ll, ll>>> pq;
	pq.push({0, {s, 0}});
	while(pq.size()) {
		auto[dv, stat] = pq.top(); pq.pop();
		auto[v, msk] = stat; dv *= -1;
		if(dist[v][msk]!=dv) continue;
		for(auto i : g[v]) {
			if(dist[e[i].b][msk] > dist[v][msk] + e[i].c) {
				dist[e[i].b][msk] = dist[v][msk] + e[i].c;
				pq.push({-dist[e[i].b][msk], {e[i].b, msk}});
			}
		}
		if(msk) continue;
		for(auto i : gt[v]) {
			if(dv + e[i].c + e[i].d < dist[e[i].a][1]) {
				dist[e[i].a][1] = dv + e[i].c + e[i].d;
				pq.push({-dist[e[i].a][1], {e[i].a, 1}});
			}
		}
	}
	return dist;
}

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);

	cin >> n >> m;
	for(ll i=0; i<m; ++i) {
		Edge x;
		cin >> x.a >> x.b >> x.c >> x.d;
		g[x.a].push_back(i);
		gt[x.b].push_back(i);
		e.emplace_back(x);ll	
	}
	vector<vector<ll>> dist1 = dijkstra(1);
	vector<vector<ll>> distn = dijkstra(n);
	ll ans = dist1[n][0] + distn[1][0];
	ans = min(ans, dist1[n][1] + distn[1][0]);
	ans = min(ans, dist1[n][0] + distn[1][1]);
	if(ans >= inf) cout << "-1\n";
	else cout << ans << "\n";

	return 0;
}

Compilation message (stderr)

ho_t4.cpp: In function 'int main()':
ho_t4.cpp:57:9: error: expected unqualified-id before '}' token
   57 |         }
      |         ^