This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "fish.h"
#include<iostream>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
using ll = long long;
using pii = pair<int, int>;
using pil = pair<int, ll>;
#define forn(i, n) for(int i=0; i<(int)n; ++i)
#define forsn(i, s, n) for(int i=s; i<(int)n; ++i)
#define dforn(i, n) for(int i=(int)n-1; i>=0; --i)
#define dforsn(i, s, n) for(int i=(int)n-1; i>=s; --i)
#define PB push_back
#define F first
#define S second
int n, m;
vector<pii> pts[300010];
ll bd[100010], bu[100010];
void update(int r, ll value, ll* bit){
for(; r<n+1; r=r|(r+1)) bit[r]=max(bit[r], value);
}
ll query(int r, ll* bit, ll base=0){
ll ret = base;
for(; r>=0; r=(r&(r+1))-1) ret=max(ret, bit[r]);
return ret;
}
ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) {
n=N, m=M;
forn(i, m) pts[X[i]].PB({Y[i], W[i]});
forn(i, n) sort(pts[i].begin(), pts[i].end());
forn(i, n+1) bd[i]=-1000000000000000000;
ll mx=0;
forn(i, n){
mx = max(mx, query(n, bu));
ll emp = max(query(n, bd), query(n, bu));
for(pii el:pts[i]){
ll a = query(el.F - 1, bu), b = query(n, bd, -1000000000000000000);
update(el.F, max(a, b) + el.S, bu);
}
dforn(ind, pts[i].size()){
pii el = pts[i][ind];
ll a = query(n - el.F - 1, bd, -1000000000000000000);
update(n - el.F, a + el.S, bd);
}
update(0, emp, bd);
}
return max(mx, query(n, bd));
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |