daylight-library

This documentation is automatically generated by competitive-verifier/competitive-verifier

View the Project on GitHub daylight-pro/daylight-library

:warning: キューに要素vを追加する (daylight/structure/deletable_priority_queue.hpp)

Depends on

Code

#include "daylight/base.hpp"

template<typename T, typename vec = vector<T>,
		 typename cmp = less<typename vec::value_type>>
struct deletable_priority_queue {
private:
	map<T, T> M;
	priority_queue<T, vec, cmp> Q;
	int sz;

public:
	deletable_priority_queue() {
		sz = 0;
	}

	/// @brief キューに要素vを追加する
	/// @param v 追加する要素
	void push(T v) {
		Q.push(v);
		M[v]++;
		sz++;
	}
	/// @brief キューから要素vを削除する
	/// @param v 削除する要素
	/// @return 削除が成功したかどうか
	bool remove(T v) {
		if(M[v] == 0) return false;
		M[v]--;
		sz--;
		while(!Q.empty() && M[Q.top()] == 0) {
			Q.pop();
		}
		return true;
	}
	/// @brief キューの最大元を取り出す
	/// @return キューの最大元
	T top() {
		return Q.top();
	}
	/// @brief キューの最大元を削除する
	void pop() {
		while(M[Q.top()] == 0) {
			Q.pop();
		}
		M[Q.top()]--;
		sz--;
		Q.pop();
		while(!Q.empty() && M[Q.top()] == 0) {
			Q.pop();
		}
	}
	/// @brief キューが要素vを含むかを判定する
	/// @param v キューが含むかを判定する要素
	/// @return キューがvを含むかどうか
	bool contains(T v) {
		return M[v] > 0;
	}
	/// @brief キューの要素数を取得する
	/// @return キューの要素数
	size_t size() {
		return (size_t) sz;
	}
};
Traceback (most recent call last):
  File "/home/runner/.local/lib/python3.10/site-packages/competitive_verifier/oj_resolve/resolver.py", line 181, in resolve
    bundled_code = language.bundle(path, basedir=basedir)
  File "/home/runner/.local/lib/python3.10/site-packages/competitive_verifier/oj/verify/languages/cplusplus.py", line 252, in bundle
    bundler.update(path)
  File "/home/runner/.local/lib/python3.10/site-packages/competitive_verifier/oj/verify/languages/cplusplus_bundle.py", line 482, in update
    self.update(
  File "/home/runner/.local/lib/python3.10/site-packages/competitive_verifier/oj/verify/languages/cplusplus_bundle.py", line 477, in update
    raise BundleErrorAt(
competitive_verifier.oj.verify.languages.cplusplus_bundle.BundleErrorAt: daylight/base.hpp: line 103: unable to process #include in #if / #ifdef / #ifndef other than include guards
Back to top page