結果
問題 | No.1441 MErGe |
ユーザー |
![]() |
提出日時 | 2021-03-26 21:35:42 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 733 ms / 1,000 ms |
コード長 | 2,191 bytes |
コンパイル時間 | 4,493 ms |
コンパイル使用メモリ | 258,148 KB |
最終ジャッジ日時 | 2025-01-19 21:59:30 |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 28 |
ソースコード
#line 1 "main.cpp"#include <bits/extc++.h>#line 4 "/Users/kodamankod/Desktop/CppProcon/Library/proconlib/utility/int_alias.cpp"using i32 = std::int32_t;using u32 = std::uint32_t;using i64 = std::int64_t;using u64 = std::uint64_t;using i128 = __int128_t;using u128 = __uint128_t;using isize = std::ptrdiff_t;using usize = std::size_t;#line 4 "/Users/kodamankod/Desktop/CppProcon/Library/proconlib/utility/rep.cpp"class rep {struct Iter {usize itr;constexpr Iter(const usize pos) noexcept: itr(pos) { }constexpr void operator ++ () noexcept { ++itr; }constexpr bool operator != (const Iter& other) const noexcept { return itr != other.itr; }constexpr usize operator * () const noexcept { return itr; }};const Iter first, last;public:explicit constexpr rep(const usize first, const usize last) noexcept: first(first), last(std::max(first, last)) { }constexpr Iter begin() const noexcept { return first; }constexpr Iter end() const noexcept { return last; }};#line 4 "main.cpp"namespace extlib {using namespace std;using namespace __gnu_pbds;template <class T>using Tree = tree<T, null_type, std::less<T>, rb_tree_tag, tree_order_statistics_node_update>;}template <class T>using Vec = std::vector<T>;void E_main() {usize N, Q;std::cin >> N >> Q;Vec<i64> A(N);for (auto &x: A) {std::cin >> x;}Vec<i64> sum(N + 1);for (auto i: rep(0, N)) {sum[i + 1] = sum[i] + A[i];}extlib::Tree<usize> idx;for (auto i: rep(0, N + 1)) {idx.insert(i);}while (Q--) {usize t, l, r;std::cin >> t >> l >> r;l -= 1;if (t == 1) {auto itr = std::next(idx.find_by_order(l));for (auto _: rep(l + 1, r)) {itr = idx.erase(itr);}}else {l = *idx.find_by_order(l);r = *idx.find_by_order(r);std::cout << sum[r] - sum[l] << '\n';}}return;}int main() {std::ios_base::sync_with_stdio(false);std::cin.tie(nullptr);E_main();return 0;}