Submission #1197029

#TimeUsernameProblemLanguageResultExecution timeMemory
1197029veehjCircle Passing (EGOI24_circlepassing)C++20
20 / 100
2130 ms844444 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define fi first #define se second #define pb push_back #define sz(a) (ll) a.size() #define all(x) (x).begin(), (x).end() #define rep(i, a, b) for(ll i=a; i<b; i++) #define rrep(i, a, b) for(ll i=a; i>=b; i--) #define vl vector<ll> #define vpll vector<pair<ll, ll>> #define vvl vector<vector<ll>> #define pll pair<ll, ll> ll n, m, Q; vvl adj; vl dist; void f() { cin >> n >> m >> Q; adj.assign(n*2, vl(0)); rep(i, 0, n*2){ adj[i].pb((i+1)%(2*n)); adj[i].pb((i-1+2*n)%(2*n)); } rep(i, 0, m){ ll x; cin >> x; adj[x].pb(x+n); adj[x+n].pb(x); } rep(i, 0, Q){ ll a, b; cin >> a >> b; dist.assign(2*n, -1); dist[a]=0; queue<pll> q; q.push({0, a}); while(!q.empty()){ ll id=q.front().se, cnt=q.front().fi; q.pop(); if(dist[id]!=cnt) continue; if(id==b){ cout << dist[id] << endl; break; } for(auto& u : adj[id]){ if(dist[u]==-1 || dist[u]>dist[id]+1){ dist[u]=dist[id]+1; q.push({dist[u], u}); } } } } } int main() { int tc = 1; // cin >> tc; for (int i = 1; i <= tc; i++) { // cout << '#' << i << endl; f(); cout << endl; } }
#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...