제출 #101459

#제출 시각아이디문제언어결과실행 시간메모리
101459dwsc007 (CEOI14_007)C++14
0 / 100
626 ms25464 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int n,m; cin >> n >> m; vector<int> adj[m]; int s,d,a,b; cin >> s >> d >> a >> b; s--; d--; a--; b--; for (int i = 0; i < m; i++){ int x,y; cin >> x >> y; x--; y--; adj[x].push_back(y); adj[y].push_back(x); } queue<int> q; int dist1[n],dist2[n]; memset(dist1,-1,sizeof(dist1)); memset(dist2,-1,sizeof(dist2)); dist1[s] = 0; dist2[d] = 0; q.push(s); while (!q.empty()){ int u = q.front(); q.pop(); for (int i = 0; i < adj[u].size(); i++){ int v = adj[u][i]; if (dist1[v] == -1){ dist1[v] = dist1[u]+1; q.push(v); } } } q.push(d); while (!q.empty()){ int u = q.front(); q.pop(); for (int i = 0; i < adj[u].size(); i++){ int v = adj[u][i]; if (dist2[v] == -1){ dist2[v] = dist2[u]+1; q.push(v); } } } // cout << dist1[a] << " " << dist1[b] << "\n"; // cout << dist2[a] << " " << dist2[b] << "\n"; if (dist2[a] < dist1[a] && dist2[b] < dist1[b]) cout << -1; else{ if (dist1[a] > dist1[b]){ swap(dist1[a],dist1[b]); swap(dist2[a],dist2[b]); } if (dist1[a] == dist1[b]){ if (dist2[a] == dist2[b]) cout << dist2[a] - dist1[a]; else if (dist2[a]+1 == dist2[b]) cout << dist2[a] - dist1[a]; else cout << dist2[b] - dist1[b]; } else if (dist1[a]+1 == dist1[b]){ if (dist2[a] == dist2[b]) cout << dist2[b] - dist1[b]; else if (dist2[a] +1 == dist2[b]) cout << dist2[a] - dist1[a]; else cout << dist2[b] - dist1[b]; } } }/* 6 6 1 2 3 4 1 5 5 6 6 3 6 4 1 2 3 4 6 7 5 6 1 2 6 3 1 2 1 3 2 3 1 5 2 4 5 4 */

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

007.cpp: In function 'int main()':
007.cpp:31:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int i = 0; i < adj[u].size(); i++){
                         ~~^~~~~~~~~~~~~~~
007.cpp:43:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for (int i = 0; i < adj[u].size(); i++){
                         ~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...