제출 #144041

#제출 시각아이디문제언어결과실행 시간메모리
144041neki007 (CEOI14_007)C++14
0 / 100
323 ms23800 KiB
#include <bits/stdc++.h>
#define loop(i, a, b) for(int i=a;i<b;i++)
#define maxn 201000
using namespace std;
typedef long long ll;

vector<int> edges[maxn];

int main(){
    int n, m, p0, pdr, s1, s2, a, b;cin >>n>> m>> p0>> pdr>> s1>> s2;
    loop(i, 0, m) scanf("%d%d", &a, &b), edges[a].push_back(b), edges[b].push_back(a);
    int ddr[maxn], d0[maxn];memset(d0, -1, sizeof(d0));memset(ddr, -1, sizeof(ddr));
    d0[p0]=0;ddr[pdr]=0;
    queue<int> q;
    q.push(p0);
    while(q.size()){
        int u=q.front(); q.pop();
        for(auto&& v:edges[u]) if(d0[v]==-1) q.push(v), d0[v]=d0[u]+1;
    }
    q.push(pdr);
    while(q.size()){
        int u=q.front(); q.pop();
        for(auto&& v:edges[u]) if(ddr[v]==-1) q.push(v), ddr[v]=ddr[u]+1;
    }
    if(ddr[s1]<ddr[s2]) cout <<max(ddr[s1]-d0[s1], -1);
    else cout <<max(ddr[s2]-d0[s2], -1);
}

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

007.cpp: In function 'int main()':
007.cpp:11:63: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     loop(i, 0, m) scanf("%d%d", &a, &b), edges[a].push_back(b), edges[b].push_back(a);
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...