1 条题解
-
0
按题意直接模拟即可。
AC code:
#include <bits/stdc++.h> using namespace std; typedef pair<int, int> pii; int main() { int n, k; cin >> n >> k; vector<pii> in(n); for (int i = 0; i < n; i++) { cin >> in[i].first >> in[i].second; } if (n == 0) { cout << 1 << " " << k << endl; return 0; } sort(in.begin(), in.end()); vector<pii> m; m.push_back(in[0]); for (int i = 1; i < n; i++) { pii& last = m.back(); if (in[i].first <= last.second) { last.second = max(last.second, in[i].second); } else { m.push_back(in[i]); } } int prev = 1; for (const auto& in : m) { int l = in.first; int r = in.second; if (prev <= l - 1) { cout << prev << " " << l - 1 << endl; } prev = r + 1; if (prev > k) { break; } } if (prev <= k) { cout << prev << " " << k << endl; } return 0; }
- 1
信息
- ID
- 147
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 7
- 已通过
- 3
- 上传者