Submission #31847

# Submission time Handle Problem Language Result Execution time Memory
31847 2017-09-11T04:07:30 Z YoLo Sterilizing Spray (JOI15_sterilizing) C++14
10 / 100
369 ms 7116 KB
#include<bits/stdc++.h>
using namespace std;
int lazy[402000], a[100009], n, m, K, f[402000], imax[402000];
void init(int k, int l, int r)
{
	if(l == r)
	{
		f[k] = a[l];
		imax[k] = a[l];
		return ;
	}
	int mid = (l + r) / 2;
	init(k * 2, l, mid);
	init(k * 2 + 1, mid + 1, r);
	f[k] = f[k * 2] + f[k * 2 + 1];
	imax[k] = max(imax[k * 2], imax[k * 2 + 1]);
}
void upd(int k, int l, int r, int L, int R)
{
	if(K == 1)
		return;
	if(r < L || R < l || r < l)
		return ;
	if(l == r)
	{
		f[k] = f[k] / K;
		imax[k] = f[k];
		return;
	}
	int mid = (l + r) / 2;
	if(imax[k * 2] > 0)
		upd(k * 2, l, mid, L, R);
	if(imax[k * 2 + 1] > 0)
		upd(k * 2 + 1, mid + 1, r, L, R);
	f[k] = f[k * 2] + f[k * 2 + 1];
	imax[k] = max(imax[k * 2], imax[k * 2 + 1]);
}
void updd(int k, int l, int r, int pos, int val)
{
	if(r < pos || l > pos)
		return;
	if(l == pos && r == pos)
	{
		f[k] = val;
		imax[k] = f[k];
		return;
	}
	int mid = (l + r) / 2;
	updd(k * 2, l, mid, pos, val);
	updd(k * 2 + 1, mid + 1, r, pos, val);
	f[k] = f[k * 2] + f[k * 2 + 1];
	imax[k] = max(imax[k * 2], imax[k * 2 + 1]);
}
int getsum(int k, int l, int r, int L, int R)
{
	if(r < L || R < l || r < l)
		return 0;
	if(L <= l && r <= R)
		return f[k];
	int mid = (l + r) / 2;
	return getsum(k * 2, l, mid, L, R) + getsum(k * 2 + 1, mid + 1, r, L, R);
}
signed main()
{
	cin >> n >> m >> K;
	for(int i = 1; i <= n; i++)
		cin >> a[i];
	init(1, 1, n);
	while(m --)
	{
		int t, l, r;
		cin >> t >> l >> r;
		if(t == 1)
			updd(1, 1, n, l, r);
		else if(t == 2)
			upd(1, 1, n, l, r);
		else
			cout << getsum(1, 1, n, l, r) << endl;
	}
}
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 7116 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 289 ms 7116 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 66 ms 7116 KB Output is correct
2 Correct 46 ms 7116 KB Output is correct
3 Correct 93 ms 7116 KB Output is correct
4 Correct 239 ms 7116 KB Output is correct
5 Correct 369 ms 7116 KB Output is correct
6 Correct 183 ms 7116 KB Output is correct
7 Correct 283 ms 7116 KB Output is correct
8 Correct 226 ms 7116 KB Output is correct
9 Correct 313 ms 7116 KB Output is correct
10 Correct 199 ms 7116 KB Output is correct
11 Correct 333 ms 7116 KB Output is correct
12 Correct 169 ms 7116 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 289 ms 7116 KB Output isn't correct
2 Halted 0 ms 0 KB -