제출 #43407

#제출 시각아이디문제언어결과실행 시간메모리
43407XmtosX007 (CEOI14_007)C++14
0 / 100
586 ms19052 KiB
#include <bits/stdc++.h> using namespace std; int n,m,st1,st2,a,b; vector <int> v[300005]; int lvl[300005][2]; void bs (int x,int y) { queue<int> q; lvl[x][y]=1; q.push(x); while (!q.empty()) { int node=q.front(); q.pop(); for (int i=0;i<v[node].size();i++) { if (!lvl[v[node][i]][y]) { lvl[v[node][i]][y]=lvl[node][y]+1; q.push(v[node][i]); } } } } int main() { cin >>n>>m>>st1>>st2>>a>>b; for (int i=0;i<m;i++) { int x,y; cin >>x>>y; v[x].push_back(y); v[y].push_back(x); } bs(st1,1); bs(st2,0); vector <int> v1; for (int i=0;i<v[a].size();i++) { if (v[a][i]!=b&&lvl[v[a][i]][0]<lvl[a][0]) v1.push_back(v[a][i]); } for (int i=0;i<v[b].size();i++) { if (v[b][i]!=a&&lvl[v[b][i]][0]<lvl[b][0]) v1.push_back(v[b][i]); } int ans=-1; for (int i=0;i<v1.size();i++) { ans=max(ans,lvl[v1[i]][0]-lvl[v1[i]][1]+1); } lvl[a][1]++; lvl[b][1]++; ans=max(ans,lvl[a][0]-lvl[a][1]); ans=max(ans,lvl[b][0]-lvl[b][1]); cout <<ans; return 0; }

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

007.cpp: In function 'void bs(int, int)':
007.cpp:15:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int i=0;i<v[node].size();i++)
                       ^
007.cpp: In function 'int main()':
007.cpp:38:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0;i<v[a].size();i++)
                   ^
007.cpp:43:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0;i<v[b].size();i++)
                   ^
007.cpp:49:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i=0;i<v1.size();i++)
                   ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...