#include <bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define f first
#define s second
#define all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
using namespace std;
const int N=2e5+5;
int n,m,l[N],r[N];
main() {
cin>>n>>m;
vector<pii> v;
for (int i=1; i<=n; i++) {
cin>>l[i]>>r[i]; if (r[i]<l[i]) r[i]+=m; v.push_back({l[i],-r[i]});
}
sort(all(v));
for (int i=1; i<=n; i++) {
l[i]=v[i-1].f; r[i]=-v[i-1].s;
}
int cnt=1e9,big=1e9;
for (int i=1; i<=1; i++) {
int last=r[i];
int mx=last;
int cnt2=1;
bool check=true;
for (int j=i+1; j<=n; j++) {
int L=l[j],R=r[j];
if (L>last) {
j--;
if (L>mx) {
check=false; break;
}
last=mx; cnt2++;
continue;
}
mx=max(mx,R);
}
if (!check) continue;
for (int j=1; j<i; j++) {
int L=l[j],R=r[j]; L+=m; R+=m;
if (L>last) {
j--;
if (L>mx) {
check=false; break;
}
last=mx; cnt2++;
continue;
}
mx=max(mx,R);
}
if (last<l[i]+m) {
if (mx<l[i]+m) check=false;
else cnt2++;
}
if (!check) continue;
cnt=min(cnt,cnt2);
}
if (cnt==big) cnt=-1;
cout<<cnt<<endl;
}
컴파일 시 표준 에러 (stderr) 메시지
Main.cpp:13:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
13 | main() {
| ^~~~
# | 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... |