Submission #1139965

#TimeUsernameProblemLanguageResultExecution timeMemory
1139965Muhammad_AneeqFire (BOI24_fire)C++20
31 / 100
2094 ms836 KiB
/*
بسم الله الرحمن الرحيم
Author:
                          (:Muhammad Aneeq:)
*/

#include <iostream>
#include <algorithm>
#include <queue>
#include <set>
#warning check the output
using namespace std;
int const N=2e5+10;
pair<int,int>a[N];
int ans=N;
int n,m;
int bfs(int s)
{
    queue<pair<int,int>>Q;
    Q.push({1,s});
    set<int>nv;
    for (int i=0;i<n;i++)
    {
        if (i!=s)
            nv.insert(i);
    }
    while (Q.size())
    {
        int co,f;
        tie(co,f)=Q.front();
        if (a[f].second>=a[s].first+m)
            return co;
        Q.pop();
        set<int>sv;
        for (auto j:nv)
        {
            if (a[j].first>=a[f].first&&a[j].first<=a[f].second)
            {
                Q.push({co+1,j});
            }
            else
                sv.insert(j);
        }
        nv=sv;
    }
    return n+10;
}
inline void solve()
{
    cin>>n>>m;
    for (int i=0;i<n;i++)
    {
        cin>>a[i].first>>a[i].second;
        if (a[i].second<a[i].first)
            a[i].second+=m;
    }
    sort(a,a+n);
    for (int i=0;i<n;i++)
        ans=min(ans,bfs(i));
    if (ans>n)
        ans=-1;
    cout<<ans<<endl;
}
int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int t=1;
    for (int i=1;i<=t;i++)
    {
        solve();
    }
}

Compilation message (stderr)

Main.cpp:11:2: warning: #warning check the output [-Wcpp]
   11 | #warning check the output
      |  ^~~~~~~
#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...