| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1267183 | Nika533 | Fire (BOI24_fire) | C++20 | 2095 ms | 6720 KiB |
#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<=n; 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;
}Compilation message (stderr)
| # | 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... | ||||
