제출 #1307109

#제출 시각아이디문제언어결과실행 시간메모리
1307109vtnooRailway Trip 2 (JOI22_ho_t4)C++20
8 / 100
2095 ms2516 KiB
#include <bits/stdc++.h> #define pb push_back #define fst first #define snd second #define fore(i,a,b) for(int i=a,pao=b;i<pao;++i) #define SZ(x) ((int)x.size()) #define ALL(x) x.begin(),x.end() #define me(a,v) memset((a),(v),sizeof(a)) #define FIN ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) using namespace std; typedef long long ll; const int MAXM=2e5+5,MAXN=1e5+5,INF=1e9; int A[MAXM],B[MAXM],L[MAXN],R[MAXN]; void chmin(int &a,int b){ if(a>b)a=b; } void chmax(int &a,int b){ if(a<b)a=b; } int main(){FIN; int n,k;cin>>n>>k; int m;cin>>m; fill(L,L+n,INF); fill(R,R+n,-INF); fore(i,0,m){ cin>>A[i]>>B[i]; A[i]--;B[i]--; if(A[i]<B[i]){ fore(j,A[i],min(A[i]+k,B[i]+1)){ chmax(R[j],B[i]); chmin(L[j],j); } }else{ for(int j=A[i];j>max(A[i]-k,B[i]-1);j--){ chmax(R[j],j); chmin(L[j],B[i]); } } } int Q;cin>>Q; while(Q--){ int s,t;cin>>s>>t;s--;t--; vector<bool>vis(n); vector<int>d(n,INF); d[s]=0;vis[s]=1; queue<int>q;q.push(s); while(!q.empty()){ int u=q.front();q.pop(); for(int i=L[u];i<=R[u];i++){ if(!vis[i]){ chmin(d[i],d[u]+1); vis[i]=1; q.push(i); } } } cout<<(d[t]==INF?-1:d[t])<<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...
#Verdict Execution timeMemoryGrader output
Fetching results...