답안 #898857

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
898857 2024-01-05T08:10:50 Z vjudge1 Magic Tree (CEOI19_magictree) C++17
0 / 100
631 ms 1048576 KB
//In the name of GOD***---...---***---...---***---...

/*/=======================================

Diversity in counsel, unity in command
__
Success always calls for greater generosity - though
most people, lost in the darkness of their own egos,
treat it as an occasion for greater greed.
Collecting boot is not an end itself, but only a means for
building an empire. Riches would be of little use to us now
except as a means of winning new friends.
__*By Cyrus the great*__

=======================================/*/
#include<bits/stdc++.h>
using namespace std;
////========== Defines ==============////
#define IOS ios_base::sync_with_stdio(0);\
	cin.tie(0);\
	cout.tie(0);
#define F first
#define S second
#define mp make_pair
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define all(x) x.begin(), x.end()
#define fixed(a) fixed<<setprecision(a)
////=============== Typedefs ==============////
typedef long long int lli;
typedef pair<int,int> pii;
////=============== CONSTANT ===============////
const lli mx = (1e3+100)*2, inf = (1<<30);
////============== Global types ============////
lli n, s, q, e;
vector<lli> adj[mx];
lli dis[mx], st[mx];
pii ed[mx];
lli wi[mx][mx];
lli mini =inf;
lli POS, ban1, ban2;
bool check;
////========== User Define Functions ==========////
void dfs(lli p, lli v){
	dis[v] = dis[p] + wi[p][v];
	if(v == e) mini = -1;
	if(v == POS) check =1;
	if(st[v] == 1) mini = min(mini, dis[v]);
	for(auto u : adj[v]){
		if(u == p) continue;
		if(u == ban1 && v == ban2) continue;
		if(v == ban1 && u == ban2) continue;
		dfs(v, u);
	}
}
void solve(lli pos){
	POS = pos;
//	if(n == s){
//		dfs(0, e);
//		if(check) cout << "escaped\n";
//		else cout << 0 << '\n';
//	}
//	else{
		dfs(0, POS);
		if(mini == inf) cout << "oo\n";
		else{
			if(mini == -1) cout << "escaped\n";
			else cout << mini << '\n';
		}
//	}
}
////================= Notes =================////
/*

*/
////============ End of Templates ============////
int main() {
	IOS
	cin >> n >> s >> q >> e;
	for(lli i =1; i < n; i++){
		lli x, y, w;
		cin >> x >> y >> w;
		adj[x].pb(y);
		adj[y].pb(x);
		wi[x][y] =w;
		wi[y][x] =w;
		ed[i] = mp(x, y);
	}
	for(lli i =0; i < s; i++){
		lli x;
		cin >> x;
		st[x] =1;
	}
	while(q--){
		lli ban, pOs;
		cin >> ban >> pOs;
		ban1 = ed[ban].F;
		ban2 = ed[ban].S;
		mini =inf;
		memset(dis, 0, sizeof dis);
		solve(pOs);
	}
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	return 0;
	
}
//Hewwo OwO
# 결과 실행 시간 메모리 Grader output
1 Runtime error 631 ms 1048576 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 38 ms 75592 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 19036 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 34 ms 75612 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 631 ms 1048576 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 34 ms 75692 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 631 ms 1048576 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 631 ms 1048576 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -