제출 #1276447

#제출 시각아이디문제언어결과실행 시간메모리
1276447avohadoDreaming (IOI13_dreaming)C++20
0 / 100
28 ms13552 KiB
#include <bits/stdc++.h> #include "dreaming.h" using namespace std; #define mod 1000000007 #define maxn 200005 #define f first #define s second #define ll long long #define pb(x) push_back(x) vector<pair<int, int>> g[maxn]; bool a[maxn]; long long k;int i1; int dfs(int u, int p){ if(g[u].size()<=1){ return u; } for(auto i:g[u]){ if(i.f!=p){ return dfs(i.f, u); } } } long long dfs2(int u, int p, long long sum){ long long mn=0; a[u]=1; for(auto i:g[u]){ if(i.f!=p) mn=max(mn, dfs2(i.f, u, sum+i.s)+i.s); } if(max(mn, sum)<k){ i1=u; k=max(mn, sum); } return mn; } int travelTime(int N,int M,int L,int A[],int B[],int T[]){ for(int i=0; i<M; i++){ g[A[i]].push_back({B[i], T[i]}); g[B[i]].push_back({A[i], T[i]}); } vector<long long> v; for(int i=0; i<M; i++){ if(!a[i]){ k=INT64_MAX; int u=dfs(i, i); dfs2(u, u, 0); v.push_back(k); } } sort(v.begin(), v.end(), greater<>()); if(v.size()>2){ return v[0]+v[1]+L; }else{ return max(v[0]+v[1]+L, v[1]+v[2]+L*2); } }

컴파일 시 표준 에러 (stderr) 메시지

dreaming.cpp: In function 'int dfs(int, int)':
dreaming.cpp:22:1: warning: control reaches end of non-void function [-Wreturn-type]
   22 | }
      | ^
#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...