Submission #498126

# Submission time Handle Problem Language Result Execution time Memory
498126 2021-12-24T12:09:08 Z AQ0212 Valley (BOI19_valley) C++17
36 / 100
3000 ms 18448 KB
#include <iostream>
#include <algorithm>
#include <cmath>
#include <set>
#include <map>
#include <vector>
#include <string>
#include <sstream>
#include <cstring>
#include <bitset>

// #pragma GCC optimize("inline")
// #pragma GCC optimize("-fgcse,-fgcse-lm")
// #pragma GCC optimize("-ftree-pre,-ftree-vrp")
// #pragma GCC optimize("-ffast-math")
// #pragma GCC optimize("-fipa-sra")
// #pragma GCC optimize("-fpeephole2")
// #pragma GCC optimize("-fsched-spec")
// #pragma GCC optimize("Ofast,no-stack-protector")
// #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
// #pragma GCC optimize("unroll-loops")

#define ll long long int
#define pb push_back
#define pll pair < ll , ll >
#define fi first
#define se second
#define all(x) x.begin(), x.end()

using namespace std;
 
// struct graphs{
// 	ll e, w, id;
// };

ll inf2 = 3e18;

ll ans, n, s, q, e;
vector < pll > g[ 100111 ];
vector < ll > markets;
map < pll , ll > mp;
 
int main (){
	ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);

	// ll n, s, q, e;

	cin >> n >> s >> q >> e;

	for(int i = 1; i < n; i ++){
		ll u, v, w;

		cin >> u >> v >> w;

		g[ u ].pb(make_pair(v, w));
		g[ v ].pb(make_pair(u, w));

		mp[ make_pair(max(u, v), min(u, v)) ] = i;
	}

	for(int i = 1; i <= s; i ++){
		ll id;

		cin >> id;

		markets.pb(id);
	}

	while(q --){
		ll ch = 0, k, r;

		cin >> k >> r;

		vector < ll > dis(n + 1, inf2), parent(n + 1);
		dis[ r ] = 0;
		set < pll > q;
		q.insert(make_pair(dis[ r ], r));

		while(!q.empty()){
			ll v = q.begin()->second;
			q.erase(q.begin());
			if(v == e){
				cout << "escaped\n";
				ch ++;
				break;
			}

			for(int j = 0; j < g[ v ].size(); j ++){
				ll to = g[ v ][ j ].fi;
				ll len = g[ v ][ j ].se;

				if(dis[ v ] + len < dis[ to ] && mp[ make_pair(max(to, v), min(to, v)) ] != k){
					q.erase(make_pair(dis[ to ], to));
					dis[ to ] = dis[ v ] + len;
					parent[ to ] = v;
					q.insert(make_pair(dis[ to ], to));
				}
			}
		}

		if(!ch){
			ll ans = inf2;
			for(auto it : markets){
				ans = min(ans, ((ll)dis[ it ]));
			}

			if(ans != inf2){
				cout << ans << "\n";
			}else
				cout << "oo\n";
		}
	}


}
 
/*
 
5 2 3 1
1 2 3
1 3 2
3 4 1
3 5 2
2
4
2 2
2 5
4 5

*/

Compilation message

valley.cpp: In function 'int main()':
valley.cpp:89:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   89 |    for(int j = 0; j < g[ v ].size(); j ++){
      |                   ~~^~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 49 ms 2752 KB Output is correct
2 Correct 41 ms 2764 KB Output is correct
3 Correct 35 ms 2804 KB Output is correct
4 Correct 40 ms 2772 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 49 ms 2752 KB Output is correct
2 Correct 41 ms 2764 KB Output is correct
3 Correct 35 ms 2804 KB Output is correct
4 Correct 40 ms 2772 KB Output is correct
5 Correct 146 ms 2852 KB Output is correct
6 Correct 72 ms 2840 KB Output is correct
7 Correct 105 ms 2808 KB Output is correct
8 Correct 104 ms 2832 KB Output is correct
9 Correct 113 ms 2828 KB Output is correct
10 Correct 164 ms 2820 KB Output is correct
11 Correct 39 ms 2756 KB Output is correct
12 Correct 106 ms 2836 KB Output is correct
13 Correct 105 ms 2840 KB Output is correct
14 Correct 208 ms 2828 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 3029 ms 18448 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 49 ms 2752 KB Output is correct
2 Correct 41 ms 2764 KB Output is correct
3 Correct 35 ms 2804 KB Output is correct
4 Correct 40 ms 2772 KB Output is correct
5 Correct 146 ms 2852 KB Output is correct
6 Correct 72 ms 2840 KB Output is correct
7 Correct 105 ms 2808 KB Output is correct
8 Correct 104 ms 2832 KB Output is correct
9 Correct 113 ms 2828 KB Output is correct
10 Correct 164 ms 2820 KB Output is correct
11 Correct 39 ms 2756 KB Output is correct
12 Correct 106 ms 2836 KB Output is correct
13 Correct 105 ms 2840 KB Output is correct
14 Correct 208 ms 2828 KB Output is correct
15 Execution timed out 3029 ms 18448 KB Time limit exceeded
16 Halted 0 ms 0 KB -