이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
vector<pair<int,int>> op;
set<int> se={0,m};
int s[n],e[n];
for (int i=0;i<n;i++)
{
cin>>s[i]>>e[i];
se.insert(s[i]);
se.insert(e[i]);
}
map<int,int> cmp;
for (int i:se)
cmp[i]=cmp.size();
m=cmp.size();
int mx[m+1]={};
for (int i=0;i<n;i++)
{
s[i]=cmp[s[i]],e[i]=cmp[e[i]];
if (s[i]>e[i])
mx[s[i]]=m,op.push_back({s[i],e[i]});
mx[s[i]]=max(mx[s[i]],e[i]);
}
if (op.empty())
{
cout<<-1<<endl;
return 0;
}
for (int i=1;i<=m;i++)
mx[i]=max(mx[i],mx[i-1]);
int ans=-1;
for (auto i:op)
{
int cnt=1,prt=i.second;
while (prt<i.first)
{
if (mx[prt]<=prt)
break;
prt=mx[prt],cnt++;
}
if (prt>=i.first)
{
if (ans==-1)
ans=cnt;
ans=min(ans,cnt);
}
}
cout<<ans<<endl;
return 0;
}
# | 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... |