# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1160760 | 12345678 | Curtains (NOI23_curtains) | C++20 | 710 ms | 244556 KiB |
#include <bits/stdc++.h>
using namespace std;
const int nx=5e5+5, kx=20;
int n, m, q, dp[nx], l, r, st[nx], ed[nx], res[nx], layer[nx], val[nx][kx], pv[nx][kx], idx, sz, single[nx];
vector<int> sl[nx], sr[nx], upperr[nx], lowerl[nx], v;
void precompute(int l, int r, int lvl)
{
if (l==r) return;
int md=(l+r)/2;
layer[md]=lvl;
precompute(l, md, lvl+1), precompute(md+1, r, lvl+1);
for (int i=md+1; i<=r; i++) upperr[i].push_back(md+1);
for (int i=md; i>=l; i--) lowerl[i].push_back(md);
}
void solve(int l, int r, vector<int> &cur)
{
if (cur.empty()) return;
if (l==r)
{
for (auto idx:cur) res[idx]=single[l];
return;
}
int md=(l+r)/2;
vector<int> qrs, ql, qr;
for (auto idx:cur)
# | 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... |