제출 #1155656

#제출 시각아이디문제언어결과실행 시간메모리
1155656adiyerFire (BOI24_fire)C++20
13 / 100
45 ms4936 KiB
#include <bits/stdc++.h>

#define all(x) x.begin(), x.end()
#define len(s) (ll) s.size()
#define pb push_back
#define F first 
#define S second 

using namespace std;

typedef long long ll;

const int N = 2e5 + 17; 
const int P = 31;
const int mod = 1e9 + 7;
const ll inf = 1e18;

ll n, m;
ll l[N], r[N], ord[N];

bool cmp(ll i, ll j){
  return l[i] < l[j];
}

signed main(){
  ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  cin >> n >> m;
  for(ll i = 1; i <= n; i++){ 
    cin >> l[i] >> r[i], ord[i] = i;
    if(r[i] < l[i]) r[i] = m;
  }
  sort(ord + 1, ord + n + 1, cmp);
  ll fin = 0, next_fin = -1, res = 0;
  for(ll _i = 1; _i <= n; _i++){
    ll i = ord[_i];
    if(l[i] <= fin){
      next_fin = max(next_fin, r[i]); 
    }
    else{
      if(next_fin <= fin) { cout << -1; return 0; }
      fin = next_fin, res++, _i--;
      if(fin == m) break;
      }
      if(next_fin == m){
        res++;
        break;
      }
    }
    cout << res;
}
#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...