QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#46975#4561. Catfish Farmzhoukangyang#0 4ms32496kbC++112.1kb2022-09-03 12:21:342024-05-26 01:07:28

Judging History

你现在查看的是最新测评结果

  • [2024-05-26 01:07:28]
  • 评测
  • 测评结果:0
  • 用时:4ms
  • 内存:32496kb
  • [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:21:34]
  • 提交

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, a.get(0, u.first) + u.second);
	}
	cout << "bc = " << bc[x] << '\n';
	L(i, 0, n)
		a.ins(i, bc[x]);
}
void case2(int x) {
	sort(pr[x + 1].begin(), pr[x + 1].end());
	reverse(pr[x + 1].begin(), pr[x + 1].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);
		b.ins(n, a.get(0, n));
	}
	return a.get(0, 0);
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Time Limit Exceeded

Test #1:

score: 0
Time Limit Exceeded

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
90000 80699
0 10792 55091480
0 36762 389250726
0 79267 706445371
0 76952 290301137
0 13444 69711795
0 68980 66221400
0 1695 703252611
0 36628 632571604
0 87676 264578012
0 79496 397448339
0 57929 447544332
0 35453 355374818
0 62449 686423696
0 45614 667165709...

output:

Unauthorized output

result:


Subtask #2:

score: 0
Wrong Answer

Test #7:

score: 0
Wrong Answer
time: 0ms
memory: 32496kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
3 2
0 0 1
1 1 1

output:

Unauthorized output

result:

wrong answer 1st lines differ - expected: '938f2698235a9ff1d1d91e23381b68bec7bed102', found: 'Unauthorized output'

Subtask #3:

score: 0
Time Limit Exceeded

Test #20:

score: 0
Time Limit Exceeded

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
100000 1
0 0 10082010

output:

Unauthorized output

result:


Subtask #4:

score: 0
Wrong Answer

Test #28:

score: 0
Wrong Answer
time: 4ms
memory: 32444kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
4 3
2 2 1
0 0 1
1 1 1

output:

Unauthorized output

result:

wrong answer 1st lines differ - expected: '938f2698235a9ff1d1d91e23381b68bec7bed102', found: 'Unauthorized output'

Subtask #5:

score: 0
Skipped

Dependency #4:

0%

Subtask #6:

score: 0
Skipped

Dependency #5:

0%

Subtask #7:

score: 0
Time Limit Exceeded

Test #60:

score: 0
Time Limit Exceeded

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
100000 99999
31026 31026 1
42940 42940 1
69303 69303 1
90350 90350 1
77507 77507 1
87126 87126 1
17988 17988 1
5146 5146 1
63023 63023 1
27776 27776 1
6136 6136 1
82557 82557 1
24904 24904 1
21667 21667 1
67271 67271 1
80294 80294 1
81145 81145 1
47144 47144 ...

output:

Unauthorized output

result:


Subtask #8:

score: 0
Skipped

Dependency #1:

0%