답안 #433732

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
433732 2021-06-20T10:08:20 Z Mounir 가로등 (APIO19_street_lamps) C++14
0 / 100
320 ms 14280 KB
#include <bits/stdc++.h>
#define chmax(x, v) x = max(x, v)
#define pii pair<int, int>
#define pb push_back
#define all(x) x.begin(), x.end()
#define chmin(x, v) x = min(x, v)
#define sz(x) (int)x.size()
#define int long long
using namespace std;

const int N = (1 << 18), OO = 1e9;
int maxi[N * 2];

int getMax(int gauche, int droite){
	if (gauche > droite)
		return 0;
	if (gauche%2 == 1)
		return max(maxi[gauche], getMax(gauche + 1, droite));
	if (droite%2 == 0)
		return max(maxi[droite], getMax(gauche, droite - 1));
	return getMax(gauche/2, droite/2);
}

void upd(int noeud, int val){
	int n = N + noeud;
	maxi[n] = val;
	n /= 2;
	for (; n > 0; n /= 2)
		maxi[n] = max(maxi[n  * 2], maxi[n * 2 + 1]);
}

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	int nVals, nReqs; cin >> nVals >> nReqs;
	vector<int> vals(nVals);
	string chaine; cin >> chaine;

	for (int iVal = 0; iVal < nVals; ++iVal){
		vals[iVal] = (chaine[iVal] - '0');
		if (vals[iVal] == 1)
			upd(iVal, 0);
		else
			upd(iVal, OO);
	}

	for (int iReq = 1; iReq <= nReqs; ++iReq){
		string typeReq; cin >> typeReq;
		if (typeReq == "toggle"){
			int iVal; cin >> iVal; --iVal;
			upd(iVal, iReq);
		}
		else {
			int a, b; cin >> a >> b;
			--a; --b;
			int  act = getMax(N + a, N + b);
			cout << max(0ll, iReq - act) << endl;
		}
	}
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 320 ms 836 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 2 ms 332 KB Output is correct
4 Correct 3 ms 332 KB Output is correct
5 Runtime error 24 ms 14280 KB Execution killed with signal 11
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -