Submission #804561

# Submission time Handle Problem Language Result Execution time Memory
804561 2023-08-03T09:49:25 Z KLPP Robot (JOI21_ho_t4) C++14
0 / 100
3000 ms 525760 KB
#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
 
using namespace std;
using namespace __gnu_pbds;
typedef long long int lld;
typedef tree<int,null_type,less<int>,rb_tree_tag,tree_order_statistics_node_update> ordered_set;
#define rep(i,a,b) for(int i=a;i<b;i++)
#define trav(a,v) for(auto a:v)
lld inp[1000000][4];
const lld INF=1e18;
void solve(){
	int n,m;
	cin>>n>>m;
	map<pair<int,int>,int> M;
	rep(i,0,m){
		rep(j,0,4)cin>>inp[i][j];
		inp[i][0]--;
		inp[i][1]--;
		M[{inp[i][0],inp[i][2]}]+=inp[i][3];
		M[{inp[i][1],inp[i][2]}]+=inp[i][3];
	}
	vector<vector<pair<int,lld> > >nei(n);
	rep(i,0,m){
		nei[inp[i][0]].push_back({inp[i][1],min(inp[i][3],M[{inp[i][0],inp[i][2]}]-inp[i][3])});
		nei[inp[i][1]].push_back({inp[i][0],min(inp[i][3],M[{inp[i][1],inp[i][2]}]-inp[i][3])});
	}
	vector<lld> dist(n,INF);
	dist[0]=0;
	priority_queue<pair<lld,int> >pq;
	pq.push({0,0});
	while(!pq.empty()){
		lld d=-pq.top().first;
		int v=pq.top().second;
		pq.pop();
		if(d>dist[v])continue;
		trav(u,nei[v]){
			if(dist[u.first]>u.second+d){
				dist[u.first]=u.second+d;
				pq.push({-dist[u.first],u.first});
			}
		}
	}
	if(dist[n-1]<INF)cout<<dist[n-1]<<"\n";
	else cout<<"-1\n";
}

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int tt=1;
	//cin>>tt;
	while(tt--){
		solve();
	}
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Execution timed out 3097 ms 525760 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 95 ms 13740 KB Output is correct
2 Correct 49 ms 6768 KB Output is correct
3 Correct 138 ms 17168 KB Output is correct
4 Correct 60 ms 9480 KB Output is correct
5 Incorrect 413 ms 39308 KB Output isn't correct
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Execution timed out 3097 ms 525760 KB Time limit exceeded
6 Halted 0 ms 0 KB -