제출 #101413

#제출 시각아이디문제언어결과실행 시간메모리
101413jamielim007 (CEOI14_007)C++14
0 / 100
440 ms15728 KiB
#include <bits/stdc++.h>
using namespace std;

int main(){
    int n,m;
    scanf("%d%d",&n,&m);
    int s,d,a,b;
    scanf("%d%d%d%d",&s,&d,&a,&b); s--; d--; a--; b--;
    vector<int> adj[n];
    int u,v;
    for(int i=0;i<m;i++){
        scanf("%d%d",&u,&v); u--; v--;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }
    int dist[2][n];
    for(int i=0;i<n;i++)dist[0][i]=dist[1][i]=1000000010;
    priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > > pq;
    pq.push(make_pair(0,a)); dist[0][a]=0;
    while(!pq.empty()){
        pair<int,int> cur=pq.top();pq.pop();
        for(int i=0;i<(int)adj[cur.second].size();i++){
            if(dist[0][adj[cur.second][i]]>dist[0][cur.second]+1){
                dist[0][adj[cur.second][i]]=dist[0][cur.second]+1;
                pq.push(make_pair(dist[0][adj[cur.second][i]],adj[cur.second][i]));
            }
        }
    }
    pq.push(make_pair(0,b)); dist[1][b]=0;
    while(!pq.empty()){
        pair<int,int> cur=pq.top();pq.pop();
        for(int i=0;i<(int)adj[cur.second].size();i++){
            if(dist[1][adj[cur.second][i]]>dist[1][cur.second]+1){
                dist[1][adj[cur.second][i]]=dist[1][cur.second]+1;
                pq.push(make_pair(dist[1][adj[cur.second][i]],adj[cur.second][i]));
            }
        }
    }
    printf("%d",max(-1,min(dist[0][d]-dist[0][s],dist[1][d]-dist[1][s])));
}

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

007.cpp: In function 'int main()':
007.cpp:6:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d",&n,&m);
     ~~~~~^~~~~~~~~~~~~~
007.cpp:8:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d%d%d%d",&s,&d,&a,&b); s--; d--; a--; b--;
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
007.cpp:12:14: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d%d",&u,&v); u--; v--;
         ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...