Submission #851535

# Submission time Handle Problem Language Result Execution time Memory
851535 2023-09-20T04:50:44 Z Juan Robot (JOI21_ho_t4) C++17
0 / 100
243 ms 29540 KB
#include<bits/stdc++.h>
using namespace std;
#define tii tuple<int,int,int>
#define pii pair<int,int>
const int maxn = 1e5+5, INF=0x3f3f3f3f;

map<int,int> tot[maxn];
vector<tii> adj[maxn];
int dist[maxn];

void dijkstra(){
	priority_queue<pii, vector<pii>, greater<pii>> pq;
	for(int i=0; i<maxn; i++) dist[i]=INF;
	pq.push({0,1});
	dist[1]=0;
	while(pq.size()){
		auto[d,u] = pq.top(); pq.pop();
		if(d>dist[u]) continue;

		for(auto[b,c,p] : adj[u]){
			if(dist[b]>dist[u]+p){
				dist[b] = dist[u]+p, pq.push({dist[b], b});
			}
		}
	}
}

int main(){
	int n, m; cin >> n >> m;
	for(int i=0; i<m; i++){
		int a,b,c,p; cin>>a>>b>>c>>p;
		adj[a].push_back({b,c,p});
		adj[b].push_back({a,c,p});
	}

	for(int i=1; i<=n; i++){
		for(auto[b,c,p] : adj[i])
			tot[i][c]+=p;
		for(auto&[b,c,p] : adj[i])
			p=min(p,tot[i][c]-p);
	}

	dijkstra();

	cout << (dist[n]==INF ? -1:dist[n]) << '\n';
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 7768 KB Output is correct
2 Correct 2 ms 7772 KB Output is correct
3 Correct 2 ms 7768 KB Output is correct
4 Correct 2 ms 7768 KB Output is correct
5 Correct 2 ms 7768 KB Output is correct
6 Incorrect 2 ms 7772 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 78 ms 15440 KB Output is correct
2 Correct 34 ms 11596 KB Output is correct
3 Correct 125 ms 16888 KB Output is correct
4 Correct 51 ms 12884 KB Output is correct
5 Incorrect 243 ms 29540 KB Output isn't correct
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 7768 KB Output is correct
2 Correct 2 ms 7772 KB Output is correct
3 Correct 2 ms 7768 KB Output is correct
4 Correct 2 ms 7768 KB Output is correct
5 Correct 2 ms 7768 KB Output is correct
6 Incorrect 2 ms 7772 KB Output isn't correct
7 Halted 0 ms 0 KB -