cp_library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub SSRS-cp/cp_library

:warning: old_Range_Queries/Naive.cpp

Code

template <typename T>
struct naive{
	int N;
	vector<T> A;
	naive(int N): N(N){
		A = vector<T>(N);
	}
	naive(int N, T x): N(N){
		A = vector<T>(N, x);
	}
	naive(vector<T> A): A(A){
		N = A.size();
	}
	void update(int i, T x){
		A[i] = x;
	}
	void add(int i, T x){
		A[i] += x;
	}
	void chmin(int i, T x){
		A[i] = min(A[i], x);
	}
	void chmax(int i, T x){
		A[i] = max(A[i], x);
	}
	void range_update(int L, int R, T x){
		for (int i = L; i < R; i++){
			A[i] = x;
		}
	}
	void range_add(int L, int R, T x){
		for (int i = L; i < R; i++){
			A[i] += x;
		}
	}
	void range_chmin(int L, int R, T x){
		for (int i = L; i < R; i++){
			A[i] = min(A[i], x);
		}
	}
	void range_chmax(int L, int R, T x){
		for (int i = L; i < R; i++){
			A[i] = max(A[i], x);
		}
	}
	T operator [](int i){
		return A[i];
	}
	T range_sum(int L, int R){
		T ans = 0;
		for (int i = L; i < R; i++){
			ans += A[i];
		}
		return ans;
	}
	T range_min(int L, int R){
		T ans = INF;
		for (int i = L; i < R; i++){
			ans = min(ans, A[i]);
		}
		return ans;
	}
	T range_max(int L, int R){
		T ans = -INF;
		for (int i = L; i < R; i++){
			ans = max(ans, A[i]);
		}
		return ans;
	}
	void debug(){
		cout << "[";
		for (int i = 0; i < N; i++){
			cout << A[i];
			if (i < N - 1){
				cout << ",";
			}
		}
		cout << "]" << endl;
	}
};
#line 1 "old_Range_Queries/Naive.cpp"
template <typename T>
struct naive{
	int N;
	vector<T> A;
	naive(int N): N(N){
		A = vector<T>(N);
	}
	naive(int N, T x): N(N){
		A = vector<T>(N, x);
	}
	naive(vector<T> A): A(A){
		N = A.size();
	}
	void update(int i, T x){
		A[i] = x;
	}
	void add(int i, T x){
		A[i] += x;
	}
	void chmin(int i, T x){
		A[i] = min(A[i], x);
	}
	void chmax(int i, T x){
		A[i] = max(A[i], x);
	}
	void range_update(int L, int R, T x){
		for (int i = L; i < R; i++){
			A[i] = x;
		}
	}
	void range_add(int L, int R, T x){
		for (int i = L; i < R; i++){
			A[i] += x;
		}
	}
	void range_chmin(int L, int R, T x){
		for (int i = L; i < R; i++){
			A[i] = min(A[i], x);
		}
	}
	void range_chmax(int L, int R, T x){
		for (int i = L; i < R; i++){
			A[i] = max(A[i], x);
		}
	}
	T operator [](int i){
		return A[i];
	}
	T range_sum(int L, int R){
		T ans = 0;
		for (int i = L; i < R; i++){
			ans += A[i];
		}
		return ans;
	}
	T range_min(int L, int R){
		T ans = INF;
		for (int i = L; i < R; i++){
			ans = min(ans, A[i]);
		}
		return ans;
	}
	T range_max(int L, int R){
		T ans = -INF;
		for (int i = L; i < R; i++){
			ans = max(ans, A[i]);
		}
		return ans;
	}
	void debug(){
		cout << "[";
		for (int i = 0; i < N; i++){
			cout << A[i];
			if (i < N - 1){
				cout << ",";
			}
		}
		cout << "]" << endl;
	}
};
Back to top page