# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
308783 | 2020-10-01T23:30:44 Z | wmrmr | Mousetrap (CEOI17_mousetrap) | C++17 | 5000 ms | 64212 KB |
#include <bits/stdc++.h> using namespace std; const int MAX = 1e6+10; 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(); pair<int,int> mx; mx = {0,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] >= mx.first) mx.second = mx.first, mx.first = dp[prox]; else if(dp[prox] > mx.second) mx.second = dp[prox]; } dp[v] = grau + mx.second - 1; } void DFS2(int v, int f, int ans) { if(v == t) { printf("%d",ans); return; } if(f == 0) { DFS2(pai[v],v,dp[v]); return; } int grau = g[v].size(); if(grau == 3) { DFS2(pai[v],v,ans+1); return; } pair<int,int> mx; mx = {0,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] >= mx.first) mx.second = mx.first, mx.first = dp[prox]; else if(dp[prox] > mx.second) mx.second = dp[prox]; } DFS2(pai[v],v,ans+grau+mx.second-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++) { int prox = g[t][i]; DFS1(prox,t); } DFS2(m,0,0); }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 15 ms | 23808 KB | Output is correct |
2 | Correct | 15 ms | 23808 KB | Output is correct |
3 | Execution timed out | 5068 ms | 23808 KB | Time limit exceeded |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 409 ms | 62968 KB | Output is correct |
2 | Correct | 368 ms | 59004 KB | Output is correct |
3 | Correct | 792 ms | 64120 KB | Output is correct |
4 | Correct | 382 ms | 44216 KB | Output is correct |
5 | Correct | 786 ms | 64120 KB | Output is correct |
6 | Correct | 792 ms | 64212 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 15 ms | 23808 KB | Output is correct |
2 | Correct | 15 ms | 23808 KB | Output is correct |
3 | Execution timed out | 5068 ms | 23808 KB | Time limit exceeded |
4 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 15 ms | 23808 KB | Output is correct |
2 | Correct | 15 ms | 23808 KB | Output is correct |
3 | Execution timed out | 5068 ms | 23808 KB | Time limit exceeded |
4 | Halted | 0 ms | 0 KB | - |