Submission #1341919

#TimeUsernameProblemLanguageResultExecution timeMemory
1341919ramzialoulouFire (BOI24_fire)C++20
14 / 100
311 ms440 KiB
#include <bits/stdc++.h>
 
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  int n, m;
  cin >> n >> m;
  vector<int> s(n), e(n);
  for (int i = 0; i < n; i++) {
    cin >> s[i] >> e[i];
  }
  int ans = n + 1;
  for (int mask = 1; mask < (1 << n); mask++) {
    vector<pair<int, int>> a;
    for (int j = 0; j < n; j++) {
      if (mask >> j & 1) {
        if (s[j] <= e[j]) {
          a.emplace_back(s[j], e[j]);
        } else {
          a.emplace_back(0, e[j]);
          a.emplace_back(s[j], m - 1);
        }
      }
    }
    sort(a.begin(), a.end());
    int L = a[0].first, R = a[0].second;
    for (int i = 1; i < int(a.size()); i++) {
      if (a[i].first > R) {
        break;
      }
      R = max(R, a[i].second);
    }
    if (L == 0 && R == m - 1) {
      ans = min(ans, __builtin_popcount(mask));
    }
  }
  cout << (ans == n + 1 ? -1 : ans) << '\n';
  return 0;
}
#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...