# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
308793 | 2020-10-02T00:06:21 Z | wmrmr | Mousetrap (CEOI17_mousetrap) | C++17 | 5000 ms | 64128 KB |
#include <bits/stdc++.h> using namespace std; const int MAX = 1e6+1; int dp[MAX], pai[MAX]; int n,t,m; vector<int> g[MAX]; void DFS1(int v, int p) { pai[v] = p; int grau = g[v].size(); int mxfirst = 0, mxsecond = 0; if(grau==2){ dp[v] = 1; return; } for(int i=0;i<grau;i++) { int prox = g[v][i]; if(prox == p) continue; DFS1(prox,v); if(dp[prox] >= mxfirst) mxsecond = mxfirst, mxfirst = dp[prox]; else { if(dp[prox] > mxsecond) mxsecond = dp[prox]; } } dp[v] = grau + mxsecond - 1; } void DFS2(int v, int f, int ans) { if(v == t) { printf("%d\n",ans); return; } if(f == 0) { DFS2(pai[v],v,dp[v]); return; } int grau = g[v].size(); int mxfirst = 0, mxsecond = 0; for(int i=0;i<g[v].size();i++) { int prox = g[v][i]; if(prox == f || prox == pai[v]) continue; if(dp[prox] >= mxfirst) mxsecond = mxfirst, mxfirst = dp[prox]; else { if(dp[prox] > mxsecond) mxsecond = dp[prox]; } } DFS2(pai[v],v,ans+grau+mxsecond-2); } int main() { scanf("%d %d %d",&n,&t,&m); for(int i=1;i<n;i++) { int a,b; scanf("%d %d",&a,&b); g[a].push_back(b); g[b].push_back(a); } for(int i=0;i<g[t].size();i++) { DFS1(g[t][i],t); } DFS2(m,0,0); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 16 ms | 23808 KB | Output is correct |
2 | Correct | 15 ms | 23808 KB | Output is correct |
3 | Execution timed out | 5055 ms | 23808 KB | Time limit exceeded |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 412 ms | 62972 KB | Output is correct |
2 | Correct | 368 ms | 59000 KB | Output is correct |
3 | Correct | 809 ms | 64060 KB | Output is correct |
4 | Correct | 370 ms | 43896 KB | Output is correct |
5 | Correct | 785 ms | 64124 KB | Output is correct |
6 | Correct | 782 ms | 64128 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 16 ms | 23808 KB | Output is correct |
2 | Correct | 15 ms | 23808 KB | Output is correct |
3 | Execution timed out | 5055 ms | 23808 KB | Time limit exceeded |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 16 ms | 23808 KB | Output is correct |
2 | Correct | 15 ms | 23808 KB | Output is correct |
3 | Execution timed out | 5055 ms | 23808 KB | Time limit exceeded |
4 | Halted | 0 ms | 0 KB | - |