Submission #1168138

#TimeUsernameProblemLanguageResultExecution timeMemory
1168138SheepHeadsCircle Passing (EGOI24_circlepassing)C++20
20 / 100
2093 ms844428 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;

int n, m, q;
const int INF = 1e9+7;

vector<vector<int>> adjList(2*n);

int bfs(int node, int &target){
    vector<int> dist(2*n, INF);
    dist.at(node) = 0;

    queue<int> q;
    q.push(node);

    while(!q.empty()){
        int cur = q.front();
        q.pop();

        for(auto itr : adjList.at(cur)){
            if(dist.at(itr) == INF){
                dist.at(itr) = dist.at(cur)+1;
                q.push(itr);
            }
        }

        if(dist.at(target) != INF){
            return dist.at(target);
        }
    }
}

signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    cin>>n>>m>>q;

    adjList = vector<vector<int>>(2*n);

    for(int i = 0; i<m; i++){
        int x;
        cin>>x;
        adjList.at(x).push_back(x+n);
        adjList.at(x+n).push_back(x);
    }

    adjList.at(0).push_back(2*n-1);
    adjList.at(0).push_back(1);

    adjList.at(2*n-1).push_back(0);
    adjList.at(2*n-1).push_back(2*n-2);

    for(int i = 1; i<2*n-1; i++){
        adjList.at(i).push_back(i+1);
        adjList.at(i).push_back(i-1);
    }

    while(q--){
        int x, y;
        cin>>x>>y;

        cout << bfs(x, y) << "\n";
    }

    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'long long int bfs(long long int, long long int&)':
Main.cpp:32:1: warning: control reaches end of non-void function [-Wreturn-type]
   32 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...