QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#46967 | #4561. Catfish Farm | zhoukangyang# | Compile Error | / | / | C++11 | 2.1kb | 2022-09-03 12:12:33 | 2024-05-26 01:07:22 |
Judging History
你现在查看的是最新测评结果
- [2024-05-26 01:07:22]
- 评测
- 测评结果:Compile Error
- 用时:0ms
- 内存:0kb
- [2023-08-10 23:21:45]
- System Update: QOJ starts to keep a history of the judgings of all the submissions.
- [2022-09-03 12:12:33]
- 提交
answer
#include<bits/stdc++.h>
#define L(i, j, k) for(int i = (j); i <= (k); ++i)
#define R(i, j, k) for(int i = (j); i >= (k); --i)
#define ll long long
#define vi vector < int >
#define sz(a) ((int) (a).size())
#define me(a, x) memset(a, x, sizeof(a))
using namespace std;
const int N = 1e6 + 7;
int n, m;
struct segt {
ll mx[N];
void upd(int x) { mx[x] = max(mx[x << 1], mx[x << 1 | 1]); }
void Add(int x, int L, int R, int p, ll w) {
if(L == R) return mx[x] = max(mx[x], w), void();
int mid = (L + R) >> 1;
p <= mid ? Add(x << 1, L, mid, p, w) : Add(x << 1 | 1, mid + 1, R, p, w), upd(x);
}
ll Query(int x, int L, int R, int l, int r) {
if(l <= L && R <= r) return mx[x];
ll ns = -1e18;
int mid = (L + R) >> 1;
if(l <= mid) ns = max(ns, Query(x << 1, L, mid, l, r));
if(r > mid) ns = max(ns, Query(x << 1 | 1, mid + 1, R, l, r));
return ns;
}
void ins(int x, ll w) {
Add(1, 0, n + 1, x, w);
}
ll get(int l, int r) {
return Query(1, 0, n, l, r);
}
void build(int x, int L, int R) {
if(L == R) return ;
mx[x] = -1e18;
int mid = (L + R) >> 1;
build(x << 1, L, mid);
build(x << 1 | 1, mid + 1, R);
}
} a, b;
/*
a : up
b : down
*/
vector < pair < int, int > > pr[N];
ll A[N], B[N], F[N], bc[N];
void case1(int x) { // a transform.
sort(pr[x].begin(), pr[x].end());
for(auto u : pr[x]) {
a.ins(u.first + 1, max(a.get(0, u.first) + u.second, bc[x]));
}
}
void case2(int x) {
reverse(pr[x].begin(), pr[x].end());
for(auto u : pr[x + 1]) {
ll dwn = b.get(u.first + 1, n) + u.second;
bc[x + 1] = max(bc[x + 1], dwn);
b.ins(u.first, dwn);
}
}
ll S[N];
ll max_weights(int xn, int xm, vi x, vi y, vi z) {
n = xn, m = xm;
L(i, 0, m - 1) pr[x[i]].push_back({y[i], z[i]}), S[x[i]] += y[i];
a.build(1, 0, n);
b.build(1, 0, n)
a.ins(0, 0);
L(i, 0, n) {
ll upd = b.get(0, n);
b.ins(n, a.get(0, n)), case1(i), case2(i), a.ins(0, upd);
}
return a.get(0, 0);
}
int main() {
cout << max_weights(5, 4, vi{0, 1, 4, 3}, vi{2, 1, 4, 3}, vi{5, 2, 1, 3}) << '\n';
return 0;
}
Details
answer.code: In function ‘long long int max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)’: answer.code:71:25: error: expected ‘;’ before ‘a’ 71 | b.build(1, 0, n) | ^ | ; 72 | a.ins(0, 0); | ~