Submission #898858

# Submission time Handle Problem Language Result Execution time Memory
898858 2024-01-05T08:14:09 Z vjudge1 Magic Tree (CEOI19_magictree) C++17
Compilation error
0 ms 0 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<lli,lli> pii;
////=============== CONSTANT ===============////
const lli mx = (1e3+100), inf = (1<<30);
////============== Global types ============////
lli n, s, q, e;
vector<pii> adj[mx];
lli dis[mx], st[mx];
pii ed[mx];
lli mini =inf;
lli POS, ban1, ban2;
bool check;
////========== User Define Functions ==========////
void dfs(lli p, lli v, int wi){
	dis[v] = dis[p] + wi;
	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.F == p) continue;
		if(u.F == ban1 && v == ban2) continue;
		if(v == ban1 && u.F == ban2) continue;
		dfs(v, u.F, u.S);
	}
}
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, 0);
		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(mp(y, w));
		adj[y].pb(mp(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

Compilation message

magictree.cpp: In function 'void solve(lli)':
magictree.cpp:59:11: error: too few arguments to function 'void dfs(lli, lli, int)'
   59 |   dfs(0, e);
      |           ^
magictree.cpp:44:6: note: declared here
   44 | void dfs(lli p, lli v, int wi){
      |      ^~~
magictree.cpp:77:12: error: a function-definition is not allowed here before '{' token
   77 | int main() {
      |            ^
magictree.cpp:104:1: error: expected '}' at end of input
  104 | }
      | ^
magictree.cpp:56:20: note: to match this '{'
   56 | void solve(lli pos){
      |                    ^