제출 #1126379

#제출 시각아이디문제언어결과실행 시간메모리
1126379monaxia비밀 (JOI14_secret)C++20
0 / 100
20088 ms4324 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 timeMemoryGrader output
Fetching results...