Submission #898862

#TimeUsernameProblemLanguageResultExecution timeMemory
898862vjudge1Magic Tree (CEOI19_magictree)C++17
0 / 100
748 ms1048576 KiB
//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, 0); 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
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...