# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
810238 | vjudge1 | Railway Trip 2 (JOI22_ho_t4) | C++17 | 2071 ms | 21476 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define TL ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define rall(s) s.rbegin(),s.rend()
#define all(s) s.begin(),s.end()
#define pb push_back
#define fi first
#define se second
#define ll long long
#define ld long double
#define YES cout<<"YES\n"
#define Yes cout<<"Yes\n"
#define yes cout<<"yes\n"
#define NO cout<<"NO\n"
#define No cout<<"No\n"
#define no cout<<"no\n"
const int N = 5e5 + 9 , mod = 1e9 + 7;
ll d[N] = {} , a[N] = {}, dp[N] , b[N] , c[N];
struct edge{
ll a , b, c;
};
vector<pair<int,int>>v[N] , v1 , v2;
vector<edge>vc;
void solve(){
ll q , i , j , m ,n, z ,s = 0 , f , l , r , k , x , y , mn = 1e18 , mx = 0;
cin>>n>>k;
cin>>m;
for(i = 1; i <= n; i++)
a[i] = b[i] = i;
for(i = 1; i <= m; i++){
cin>>l>>r;
if(l > r){
x = max(l - k + 1 , r + 1);
for(j = l ; j >= x; j--)
a[j] = min(a[j] , r);
}else {
x = min(l + k - 1 , r - 1);
for(j = l; j <= x; j++)
b[j] = max(b[j] , r);
vc.pb({l , x , r});
}
}
set<ll>st;
cin>>q;
while(q--){
cin>>x>>y;
set<ll>st;
for(i = 1; i <= n; i++){
d[i] = 1e9;
st.insert(i);
}
queue<int>qq;
qq.push(x);
st.erase(x);
d[x] = 0;
while(!qq.empty()){
i= qq.front();
qq.pop();
auto it = st.lower_bound(i);
while(st.size() && it != st.end() && *it <= b[i]){
d[*it] = d[i] + 1;
qq.push(*it);
st.erase(it);
it = st.lower_bound(i);
}
while(st.size() && *st.begin() < i){
auto it = st.lower_bound(i);
it--;
if(*it < a[i])
break;
d[*it] = d[i] + 1;
qq.push(*it);
st.erase(it);
}
}
if(d[y] == 1e9)
d[y] = -1;
cout<<d[y]<<"\n";
}
}
int main(){
TL;
/* #ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
*/
int t = 1;
//cin>>t;
while(t--)
{
solve();
}
}
// Author : حسن
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |