update
This commit is contained in:
parent
2d3a3ce03b
commit
3eff188a70
BIN
src/CSP-S2020/2020-CSP-S2.pdf
Normal file
BIN
src/CSP-S2020/2020-CSP-S2.pdf
Normal file
Binary file not shown.
56
src/P5854/P5854.cpp
Normal file
56
src/P5854/P5854.cpp
Normal file
@ -0,0 +1,56 @@
|
||||
#include <iostream>
|
||||
#include <istream>
|
||||
#include <ostream>
|
||||
#include <stack>
|
||||
|
||||
#ifdef ONLINE_JUDGE
|
||||
#define DEBUG(code)
|
||||
#else
|
||||
#define DEBUG(code)code
|
||||
#endif
|
||||
|
||||
using ll = long long;
|
||||
|
||||
const ll max_n = 1e7+5;
|
||||
struct Node{
|
||||
ll left_child, right_child, val;
|
||||
friend std::ostream& operator<<(std::ostream &os, const Node &n){
|
||||
os<<"Node { val: "<<n.val<<", left_child: "<<n.left_child<<", right_child: "<<n.right_child<<" }";
|
||||
return os;
|
||||
}
|
||||
}nodes[max_n];
|
||||
ll n;
|
||||
std::stack<ll> stk;
|
||||
ll root, ans1, ans2;
|
||||
|
||||
int main(){
|
||||
std::iostream::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);
|
||||
|
||||
std::cin>>n;
|
||||
for(ll i{1};i<=n;i++){
|
||||
std::cin>>nodes[i].val;
|
||||
}
|
||||
for(ll i{1};i<=n;i++){
|
||||
while(!stk.empty() && nodes[i].val < nodes[stk.top()].val){
|
||||
nodes[i].left_child = stk.top();
|
||||
stk.pop();
|
||||
}
|
||||
if(!stk.empty()){
|
||||
nodes[stk.top()].right_child = i;
|
||||
}else{
|
||||
root = i;
|
||||
}
|
||||
stk.push(i);
|
||||
}
|
||||
DEBUG(
|
||||
std::cout<<root<<'\n';
|
||||
)
|
||||
for(ll i{1};i<=n;i++){
|
||||
DEBUG(
|
||||
std::cout<<nodes[i]<<'\n';
|
||||
)
|
||||
ans1 ^= i * (nodes[i].left_child + 1);
|
||||
ans2 ^= i * (nodes[i].right_child + 1);
|
||||
}
|
||||
std::cout<<ans1<<' '<<ans2<<'\n';
|
||||
}
|
Loading…
Reference in New Issue
Block a user