제출 #1310412

#제출 시각아이디문제언어결과실행 시간메모리
1310412cansu_mutluEvent Hopping (BOI22_events)C++20
10 / 100
1607 ms250916 KiB

#include<bits/stdc++.h>
#define int long long 
using namespace std;
int32_t main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,q;
    cin >> n >> q;
    vector<array<int,2>> val(n+1);
    for(int i=1;i<=n;i++)
    cin >> val[i][0] >> val[i][1];
    vector<vector<int>> a(n+1);
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            if(i==j) continue;
            if(val[i][1]>=val[j][0] && val[i][1]<=val[j][1])
            {
                a[i].push_back(j);
            }
        }
    }
    vector<vector<int>> dist(n+1,vector<int>(n+1,1e18));
    for(int i=1;i<=n;i++)
    {
        priority_queue<array<int,2>> q;
        q.push({0,i});
        dist[i][i] = 0;
        while(q.size())
        {
            int s = q.top()[1];
            q.pop();
            for(int x:a[s])
            {
                if(dist[i][x]==1e18)
                {
                    dist[i][x] = dist[i][s]+1;
                    q.push({-dist[i][x],x});
                }
            }
        }
    }
    while(q--)
    {
        int s,e;
        cin >> s >> e;
        if(dist[s][e]==1e18) cout << "impossible" << endl;
        else cout << dist[s][e] <<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...