結果
問題 |
No.686 Uncertain LIS
|
ユーザー |
![]() |
提出日時 | 2025-06-26 18:06:35 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,859 bytes |
コンパイル時間 | 3,232 ms |
コンパイル使用メモリ | 280,928 KB |
実行使用メモリ | 8,448 KB |
最終ジャッジ日時 | 2025-06-26 18:06:41 |
合計ジャッジ時間 | 6,108 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 16 WA * 20 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define int long long #define x first #define y second #define pb push_back #define eb emplace_back #define v vector #define printv(a, x) for (int i = x; i < a.size(); i ++ ) \ cout << a[i] << " \n"[i == (int)a.size() - 1] #define printvv(a, x) for (int i = x; i < a.size(); i ++ ) \ for (int j = x; j < a[i].size(); j ++ ) \ cout << a[i][j] << " \n"[j == (int)a[i].size() - 1] #define all(x) (x).begin(), (x).end() #define readv(a, n, x) for (int i = x; i < n + x; i ++ ) \ cin >> a[i] #define readvv(a, n, m, x) for (int i = x; i < n + x; i ++ ) \ for (int j = x; j < m + x; j ++ ) \ cin >> a[i][j] #define gt greater #define pq priority_queue #define umap unordered_map #define uset unordered_set #define lbound(a, l, r, x) lower_bound(a.begin() + l, a.begin() + r + 1, x) - a.begin() #define ubound(a, l, r, x) upper_bound(a.begin() + l, a.begin() + r + 1, x) - a.begin() #define printd(x, d) cout << fixed << setprecision(d) << (x) << '\n' #define ne_per(a) next_permutation((a).begin(), (a).end()) template <typename T> void base_dbg (const std::string& key, const T& value) { std::cerr << key << " = " << value; } template <typename... Args> void dbg_args (const std::string& keys, Args... args) { size_t pos{ 0 }; ( (base_dbg (keys.substr (pos, keys.find (',', pos) - pos), args), pos = keys.find (',', pos) + 1), ...); } #define dbg(...) { \ std::cerr << ""; \ dbg_args(#__VA_ARGS__, __VA_ARGS__); \ std::cerr << '\n'; \ } template <typename T> void base_print (const T& value) { std::cout << value << ' '; } template <typename... Args> void print_args (Args... args) { size_t pos{ 0 }; ( (base_print (args) ), ...); } #define print(...) { \ std::cout << ""; \ print_args(__VA_ARGS__); \ std::cout << '\n'; \ } using i64 = long long; using u64 = unsigned long long; using u32 = unsigned int; using i128 = __int128; std::mt19937 rnd (std::chrono::steady_clock().now().time_since_epoch().count() ); constexpr int dx[] = {0, 0, 1, -1}; constexpr int dy[] = {1, -1, 0, 0}; void solve() { int n; cin >> n; set<int> s; for (int i = 0; i < n; i++) { int l, r; cin >> l >> r; auto it = s.lower_bound(r); if (it != s.end()) { if (it != s.begin()) { l = max(l, *prev(it) + 1); } s.erase(it); } else if (s.size()) { l = max(l, *prev(it) + 1); } s.insert(l); } cout << s.size(); } signed main() { ios_base::sync_with_stdio (false); cin.tie (nullptr); cout.tie (nullptr); int t = 1; // cin >> t; while (t -- ) solve(); return 0; }