제출 #978540

#제출 시각아이디문제언어결과실행 시간메모리
978540vjudge1Passport (JOI23_passport)C++17
0 / 100
2071 ms19640 KiB
#include<bits/stdc++.h>
#define sz size()
#define ll long long
using namespace std;
const ll N = 500500;
const ll INF = 1e18;

void solve()
{
    ll n, Q, i, j, k;
    cin >> n;

    ll l[n + 1], r[n + 1];
    for(i = 1; i <= n; ++i)
        cin >> l[i] >> r[i];

    cin >> Q;
    while(Q--)
    {
        ll start;
        cin >> start;
        ll cl = start, cr = start;

        vector<ll> d(n + 1, INF);
        d[start] = 0;
        multiset<pair<ll, ll>> q;
        q.insert({0, start});
        while(q.sz)
        {
            ll s = (*q.begin()).second;
            q.erase(q.find(*q.begin()));

            for(ll t = l[s]; t <= min(cl, s); ++t)
            {
                if(d[t] <= d[s] + 1) continue;
                q.erase({d[t], t});
                d[t] = d[s] + 1;
                q.insert({d[t], t});
            }
            for(ll t = max(s, cr); t <= r[s]; ++t)
            {
                if(d[t] <= d[s] + 1) continue;
                q.erase({d[t], t});
                d[t] = d[s] + 1;
                q.insert({d[t], t});
            }
        }
        ll ans = max(d[1], d[n]);
        cout << (ans < INF ? ans : -1) << '\n';
    }
}

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0), cout.tie(0);
    solve();
}

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

passport.cpp: In function 'void solve()':
passport.cpp:10:17: warning: unused variable 'j' [-Wunused-variable]
   10 |     ll n, Q, i, j, k;
      |                 ^
passport.cpp:10:20: warning: unused variable 'k' [-Wunused-variable]
   10 |     ll n, Q, i, j, k;
      |                    ^
#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...