This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
const int mod=(int)1e9+7;
int p[900003][23];
vector<int>lol;
void solve()
{
int n,m;
cin>>n>>m;
vector<pair<int,int>>arr;
vector<int>hi;
for(int i=0;i<n;i++)
{
int a,b;
cin>>a>>b;
hi.push_back(a);
hi.push_back(b);
hi.push_back(a+1);
hi.push_back(b+1);
arr.push_back({a,b});
}
hi.push_back(m);
hi.push_back(m+1);
sort(hi.begin(),hi.end());
hi.erase(unique(hi.begin(),hi.end()),hi.end());
m=lower_bound(hi.begin(),hi.end(),m)-hi.begin();
for(int i=0;i<n;i++)
{
arr[i].first=lower_bound(hi.begin(),hi.end(),arr[i].first)-hi.begin();
arr[i].second=lower_bound(hi.begin(),hi.end(),arr[i].second)-hi.begin();
}
// for(auto i:arr)cout<<i.first<<" "<<i.second<<endl;
for(int i=0;i<n;i++)
{
if(arr[i].first>arr[i].second)arr[i].second+=m;
p[arr[i].first][0]=max(p[arr[i].first][0],arr[i].second+1);
}
for(int i=1;i<2*m;i++)p[i][0]=max(p[i-1][0],p[i][0]);
for(int i=1;i<=20;i++)
for(int j=0;j<2*m;j++)
p[j][i]=p[p[j][i-1]][i-1];
int fans=1e9;
for(int i=0;i<m;i++)
{
int cnt=0,cur=i;
for(int j=20;j>=0;j--)
{
if(p[cur][j]<=i+m)
{
cur=p[cur][j];
cnt+=(1ll<<j);
}
}
if(p[cur][0]<=i+m)continue;
cnt++;
// cout<<i<<" "<<cnt<<" "<<cur<<" "<<p[cur][0]<<" "<<p[i][0]<<endl;
fans=min(fans,cnt);
}
if(fans==1e9)cout<<-1<<endl;
else cout<<fans<<endl;
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
int t=1;
// cin>>t;
while(t--)
solve();
}
# | 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... |