# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
882060 | 2023-12-02T14:08:53 Z | nikd | 꿈 (IOI13_dreaming) | C++17 | 38 ms | 27300 KB |
#include <bits/stdc++.h> #include "dreaming.h" #define MAXN 100001 using namespace std; int f; int max_dis; int par[MAXN]; int tree[MAXN]; int cont=0; vector<int> mintree; bool vis[MAXN]={}; vector<pair<int, int>> adj[MAXN]; int dist[MAXN]={}; void dfs1(int v, int p){ vis[v]=true; for(auto u: adj[v]){ if(u.first!=p){ dist[u.first]=dist[v]+u.second; if(dist[u.first]>max_dis){ max_dis=dist[u.first]; f=u.first; } dfs1(u.first, v); } } } void dfs2(int v, int p){ par[v]=p; for(auto u: adj[v]){ if(u.first!=p){ dist[u.first]=dist[v]+u.second; if(dist[u.first]>max_dis){ max_dis=dist[u.first]; f=u.first; } dfs2(u.first, v); } } } int travelTime(int N, int M, int L, int A[], int B[], int T[]){ for(int i = 0; i<M; i++){ adj[A[i]].push_back({B[i], T[i]}); adj[B[i]].push_back({A[i], T[i]}); } for(int i = 0; i<N; i++){ if(!vis[i]){ mintree.push_back(INT_MAX); max_dis=0; f=0; dist[i]=0; dfs1(i, i); int a = f; dist[a]=0; max_dis=0; dfs2(a, a); int b = f; int d= max_dis/2; int last=-1; while(dist[b]>d){ last=b; b=par[b]; } if(last==-1){ mintree[cont]=dist[b]; } else{ mintree[cont]=min(dist[last], max_dis-dist[b]); } cont++; } } sort(mintree.begin(), mintree.end()); int sol; int n = mintree.size(); if(n==2){ sol = mintree[0]+mintree[1]+L; } if(n==0) sol =mintree[0]; else{ sol=max(mintree[n-1]+mintree[n-2]+L, mintree[n-2]+mintree[n-3]+2*L); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 38 ms | 27300 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 5 ms | 9048 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 38 ms | 27300 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 23 ms | 14560 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 5 ms | 9048 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 38 ms | 27300 KB | Execution killed with signal 11 |
2 | Halted | 0 ms | 0 KB | - |