제출 #1188225

#제출 시각아이디문제언어결과실행 시간메모리
1188225prideliqueee꿈 (IOI13_dreaming)C++20
컴파일 에러
0 ms0 KiB
#include<bits/stdc++.h> #include "dreaming.h" using namespace std; #define int long long #define f first #define s second int up[100010]; int down[100010]; int ans[100010]; int mx; vector<pair<int,int>> ad[100010]; void dfs1(int u,int p) { //down[u]=0; for(auto x:ad[u]) { if(x.f!=p) { dfs1(x.f,u); down[u]=max(down[u],down[x.f]+x.s); } } } void dfs2(int u,int p) { pair<int,int> mx1={-1,-1},mx2={-1,-1}; for(auto x:ad[u]) { if(x.f==p) continue; if(down[x.f]+x.s>=mx1.f) { mx2=mx1; mx1={down[x.f]+x.s,x.f}; } else if(down[x.f]+x.s>mx2.f) { mx2={down[x.f]+x.s,x.f}; } } for(auto x:ad[u]) { if(x.f==p) continue; up[x.f]=max(up[x.f],up[u]+x.s); if(x.f==mx1.s) { if(mx2.s!=-1) up[x.f]=max(up[x.f],mx2.f+x.s); } else if(mx1.s!=-1) { up[x.f]=max(up[x.f],mx1.f+x.s); } dfs2(x.f,u); } ans[u]=max(down[u],up[u]); mx=min(mx,ans[u]); //cout<<mx<<" "<<ans[u]<<endl; } int travelTime(int N, int M, int L, int A[], int B[], int T[]) { int n=N,m=M,l=L; int ans1,ans2; ans1=l; ans2=0; for(int i=0;i<m;i++) { int u,v,w; u=A[i],v=B[i],w=T[i]; ad[u].push_back({v,w}); ad[v].push_back({u,w}); } for(int i=0;i<n;i++) { if(ans[i]==0) { mx=INT_MAX; dfs1(i,-1); dfs2(i,-1); if(mx>ans1) { ans2=ans1; ans1=mx; } else if(mx>ans2) { ans2=mx; } } } cout<<ans1+ans2+l; }

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

dreaming.cpp: In function 'long long int travelTime(long long int, long long int, long long int, long long int*, long long int*, long long int*)':
dreaming.cpp:93:1: warning: no return statement in function returning non-void [-Wreturn-type]
   93 | }
      | ^
/usr/bin/ld: /tmp/ccNxlgFm.o: in function `main':
grader.c:(.text.startup+0xc4): undefined reference to `travelTime'
collect2: error: ld returned 1 exit status