# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1126379 | monaxia | Secret (JOI14_secret) | C++20 | 20088 ms | 4324 KiB |
#include <bits/stdc++.h>
#include "secret.h"
using namespace std;
using ll = long long;
int n;
vector <int> st(4e3 + 5, 0);
void build(int idx, int l, int r, vector <int>& a){
if(l == r){
st[idx] = a[l];
return;
}
int mid = (l + r) >> 1;
build(idx * 2, l, mid, a);
build(idx * 2 + 1, mid + 1, r, a);
st[idx] = Secret(st[idx * 2], st[idx * 2 + 1]);
}
int query(int idx, int l, int r, int u, int v){
if(u <= l && r <= v) return st[idx];
int mid = (l + r) >> 1;
int ans = 0;
bool left = (mid <= v) ? 1 : 0, right = (mid >= l) ? 1 : 0;
if(left && right) ans = Secret(query(idx * 2, l, mid, u, v), query(idx * 2 + 1, mid + 1, r, u, v));
if(left && !right) ans = query(idx * 2, l, mid, u, v);
if(!left && right) ans = query(idx * 2 + 1, mid + 1, r, u, v);
return ans;
}
void Init(int n, int trash[]){
vector <int> a(n + 5, 0);
for(int i = 1; i <= n; i ++){
a[i] = trash[i - 1];
}
build(1, 1, n, a);
}
int Query(int l, int r){
return query(1, 1, n, l, r);
}
// ++++
// ++++-::......:--:::-=+++
// ++++=:............---.....--:..:=++++++
// +++++++::......................::=+++++
// @@ ++++++++++:+++++++++
// @% @*
// %%@@ *****#*@@
// %%%%% @##**##***%
// @@@@@@+-*#*@ #####%+*##*@
// %#+@%%@@@ ##-%:::-#*###@@
// =====:*::: ###-:==::=#*%*
// -====:::::+@@%@@%@#*--=*#%%#@%@ @%@
// @=====%=-@%=:::.:+-::::+::::::::::::%-----%% @@@@@
// @@%#*@++%===+::-================@%@@@@+++++++@@@%%%@#%###%
// @#***#@@ @##=%@===+--:+==+===+%*##@%%%@@@@@@@@@@:= @%@%%%@#%%
// -@ @*#@ #####%:::-====+:::==---**%#@ *%%%%@@@@@@-:
// -=-*% # #***--%%::::::::+=-+#-----=**@*# #+**#@#
// ----=----#+****=----=*#@=::::::=#-----------***%*%
// ------------%*****##=@==::::::+%-----------***%**
// +-----------------*@++%::::::::-----------****@*#
// =------------% @%=+%#+:::::::* #-----*--**** **
// ----%--% *==+++++=+=##*:% ---=--**** **
// %@@@@@@@@@==@+%%%%@ ----**** *#
// @=*+%@@@%@@=++=:%:::% #***@@#
// #+++++++++#==++-:::::: @**** *#
// =+++++++++++==+++::::::: ####@ #%
// +++++++++++=@ @++++::::::@ @#
// @+++++++++=@ =*++=:::::@
// ++++++++@ @++++:::::
// ++++++= =++++:::
// =+++++@ =+++::::
// ++++++-@ =+++:+::
// @::+::::@ =++::-:::
// +::=::::: @+*+:-+++-:
// @::+-:::::# +++::::::@
// ::%=:::::::%@ @%++::::***
// @:+@*:::::::****@ +@+++:-=*:*@
// *:@@%::::::::=**** @%@+++:::#**@
// *%@@@-:::::::%=+==*@ +@%+++:***+*
// #%@@%%::::::::#+=-=# =+@+++++:::*+
// @####+::::::::%+=@#%#=@ @**@@%=++::::@
// @ +:::::::::***#*@ @@###+=+=%@ +**#+=+*+:::-
// =-:::::::%%%%@@ @#=*########%#+*%%+--@*+::%
// +---%@ @@ =-:-**:#
// %%%%% @+--*@
// @%%%%@ @%%%%%
// @%%@@
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |