Submission #527767

# Submission time Handle Problem Language Result Execution time Memory
527767 2022-02-18T08:58:19 Z 1ne Autobus (COCI22_autobus) C++14
15 / 70
1000 ms 820 KB
#include<bits/stdc++.h>
using namespace std;
 
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n,m;cin>>n>>m;
vector<vector<pair<int64_t,int64_t>>>adj(n);
vector<vector<int64_t>>dist(n,vector<int64_t>(n,1e15));
//vector<vector<vector<pair<int64_t,int64_t>>>>arr(n,vector<vector<pair<int64_t,int64_t>>>(n));
for (int i = 0;i<m;++i){
	int64_t x,y,z;cin>>x>>y>>z;
	--x;
	--y;
	dist[x][y] = min(dist[x][y],z);
}
for (int i = 0;i<n;++i){
	for (int j =0;j<n;++j){
		if (i!=j){
			if (dist[i][j]!=1e15){
				adj[i].push_back({j,dist[i][j]});
			}
		}
	}
}
int k,q;cin>>k>>q;
function<bool(int,int,int64_t)> bfs = [&](int u,int v,int64_t mid){
	queue<pair<int64_t,pair<int64_t,int64_t>>>q;
	q.push({u,{0,0}});
	while(!q.empty()){
		auto x = q.front();
		q.pop();
		if (x.first==v){
			return true;
		}
		for (auto y:adj[x.first]){
			if (y.second + x.second.first<=mid && x.second.second + 1<=k){
				q.push({y.first,{y.second + x.second.first,x.second.second+1}});
			}
		}
	}
	return false;
};
for (int i = 0;i<q;++i){
	int x,y;cin>>x>>y;
	--x;
	--y;
	if (x==y){
		cout<<0<<'\n';
		continue;
	}
	int64_t ans = 1e15;
	int64_t left = 1,right = 1e12;
	while(left<=right){
		int64_t mid = (left + right)>>1;
		if (bfs(x,y,mid)){
			right = mid - 1;
			ans = min(ans,mid);
		}
		else left = mid + 1;
	}
	if (ans ==1e15){
		cout<<-1<<'\n';
	}
	else 
	cout<<ans<<'\n';
}
return 0;}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 44 ms 376 KB Output is correct
2 Correct 161 ms 368 KB Output is correct
3 Correct 466 ms 392 KB Output is correct
4 Correct 704 ms 392 KB Output is correct
5 Execution timed out 1086 ms 484 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 884 ms 820 KB Output is correct
8 Correct 846 ms 596 KB Output is correct
9 Execution timed out 1090 ms 640 KB Time limit exceeded
10 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 44 ms 376 KB Output is correct
8 Correct 161 ms 368 KB Output is correct
9 Correct 466 ms 392 KB Output is correct
10 Correct 704 ms 392 KB Output is correct
11 Execution timed out 1086 ms 484 KB Time limit exceeded
12 Halted 0 ms 0 KB -