Submission #1051495

#TimeUsernameProblemLanguageResultExecution timeMemory
1051495NeroZeinFire (BOI24_fire)C++17
0 / 100
0 ms348 KiB
#include "bits/stdc++.h" using namespace std; #ifdef Nero #include "Deb.h" #else #define debug(...) #endif int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector<int> s(n), e(n); vector<int> normal; vector<int> non_normal; for (int i = 0; i < n; ++i) { cin >> s[i] >> e[i]; if (s[i] <= e[i]) { normal.push_back(i); } else { non_normal.push_back(i); } } sort(normal.begin(), normal.end(), [&](int i, int j) { return s[i] < s[j]; }); int res = 0; int lst = 0; for (int i = 0, mx = 0; i < (int) normal.size(); ++i) { if (s[normal[i]] > lst) { if (mx < s[normal[i]]) { break; } else { res++; lst = mx; mx = max(mx, e[normal[i]]); } } else { mx = max(mx, e[normal[i]]); } if (i == (int) normal.size() - 1) { lst = mx; res++; } } if (lst < m - 1) { res = n + 1; } int ans = res; for (int i = 0; i < (int) non_normal.size(); ++i) { vector<pair<int, int>> ranges; for (int j = 0; j < (int) non_normal.size(); ++j) { if (i != j) { ranges.push_back({0, e[non_normal[j]]}); } } for (int j = 0; j < (int) normal.size(); ++j) { ranges.push_back({s[normal[j]], e[normal[j]]}); } sort(ranges.begin(), ranges.end()); res = 1; lst = e[non_normal[i]]; for (int j = 0, mx = e[non_normal[i]]; j < (int) ranges.size() && lst < s[non_normal[i]]; ++j) { auto [l, r] = ranges[j]; if (l > lst) { if (mx < s[non_normal[i]]) { break; } else { res++; lst = mx; mx = max(mx, r); } } else { mx = max(mx, r); } if (j == (int) ranges.size() - 1 && lst < s[non_normal[i]]) { lst = mx; res++; } //if (i == 0) { //debug(l, r, j, res); //} } if (lst < s[non_normal[i]]) { res = n + 1; } //if (i == 0) { //debug(lst, ranges, res); //} ans = min(ans, res); } if (ans > n) { ans = -1; } cout << 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...