# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1169587 | nathan4690 | Curtains (NOI23_curtains) | C++20 | 757 ms | 94508 KiB |
#include <bits/stdc++.h>
#define ll long long
#define ld long double
#define f1(i,n) for(int i=1;i<=n;i++)
#define __file_name ""
using namespace std;
const ll maxn=1e6+5, inf=1e18;
struct Value{
int le = 1e9, ri = -1e9;
Value(int le=1e9, int ri=-1e9): le(le), ri(ri){};
Value operator+(const Value &rhs) const{
// Merge two nodes
Value res;
if(le == 1e9) res = rhs;
else if(rhs.le == 1e9) res = *this;
else if(ri >= rhs.le - 1){
res.le = min(le, rhs.le);
res.ri = max(ri, rhs.ri);
}else res = rhs;
return res;
}
};
template<class T>
struct SegmentTree{
int n;
vector<T> st;
SegmentTree(){};
SegmentTree(int n): n(n), st(4*n+1){};
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |