Submission #1267183

#TimeUsernameProblemLanguageResultExecution timeMemory
1267183Nika533Fire (BOI24_fire)C++20
40 / 100
2095 ms6720 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)

Main.cpp:13:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   13 | main() {
      | ^~~~
#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...