답안 #864509

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
864509 2023-10-23T06:06:21 Z maks007 Toll (BOI17_toll) C++14
0 / 100
73 ms 3332 KB
// Bismi ALlah
#include "bits/stdc++.h"

using namespace std;

signed main () {
	int n, m, k, query;
	cin >> k >> n >> m >> query;
	vector<pair <int,int>> g[n];
	for(int i = 0; i < m; i ++) {
		int u, v;
		cin >> u >> v;
		int w;
		cin >> w;
		g[u].push_back({v, w});
	}
	priority_queue <pair <int,int>> q;
	vector <int> dist(n, 1e9);
	dist[0] = 0;
	q.push({0, 0});
	while(!q.empty()) {
		int v = q.top().second, cur_d = q.top().first;
		q.pop();
		if(cur_d > dist[v]) continue;
		for(auto [u, w] : g[v]) {
			if(dist[u] > dist[v] + w) {
				dist[u] = dist[v] + w;
				q.push({-dist[u], u});
			}
		}
	}
	while(query --) {
		int a, b;
		cin >> a >> b;
		if(k == 1) {
			if(a == b) cout << 0 << "\n";
			else
			cout << -1 << "\n";
			continue;
		}
		if(a == 0) {
			if(dist[b] == 1e9) cout << -1 << "\n";
			else
			cout << dist[b] << "\n"; 
		}else {
			vector <int> dist2(n, 1e9);
			dist2[a] = 0;
			q.push({0, a});
			while(!q.empty()) {
				int v = q.top().second, cur_d = q.top().first;
				q.pop();
				if(cur_d > dist2[v]) continue;
					for(auto [u, w] : g[v]) {
					if(dist2[u] > dist2[v] + w) {
						dist2[u] = dist2[v] + w;
						q.push({-dist2[u], u});
					}
				}
			}
			if(dist2[b] == 1e9) cout << -1;
			else cout << dist2[b];
			cout << "\n";
		}
	}
	return 0;
}

Compilation message

toll.cpp: In function 'int main()':
toll.cpp:25:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   25 |   for(auto [u, w] : g[v]) {
      |            ^
toll.cpp:53:15: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   53 |      for(auto [u, w] : g[v]) {
      |               ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 59 ms 3268 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 73 ms 3332 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Incorrect 15 ms 348 KB Output isn't correct
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 59 ms 3268 KB Output isn't correct
2 Halted 0 ms 0 KB -