QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#46977#4561. Catfish Farmzhoukangyang0 12ms27356kbC++112.0kb2022-09-03 12:23:272022-09-03 12:23:29

Judging History

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

  • [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:23:29]
  • 评测
  • 测评结果:0
  • 用时:12ms
  • 内存:27356kb
  • [2022-09-03 12:23:27]
  • 提交

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);
	}
	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
Time Limit Exceeded

Test #7:

score: 6
Accepted
time: 3ms
memory: 27304kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
3 2
0 0 1
1 1 1

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
2

result:

ok 3 lines

Test #8:

score: -6
Time Limit Exceeded

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
90000 161862
0 56823 293232472
0 28967 124369573
1 8799 138712011
0 87115 743135614
1 56429 262092699
0 61318 597172732
0 39127 477101342
1 44938 277680401
1 79037 997527330
1 88113 13289754
0 29715 35249311
0 50637 709319782
1 20760 845594381
1 80662 6299890...

output:

Unauthorized output

result:


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: 14
Accepted
time: 3ms
memory: 27228kb

input:

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

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
3

result:

ok 3 lines

Test #29:

score: 0
Accepted
time: 10ms
memory: 27232kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
8 7
5 5 1
4 4 1
6 6 1
3 3 1
0 0 1
2 2 1
1 1 1

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
7

result:

ok 3 lines

Test #30:

score: 0
Accepted
time: 12ms
memory: 27236kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
3 2
0 0 1
1 1 1

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
2

result:

ok 3 lines

Test #31:

score: 0
Accepted
time: 7ms
memory: 27356kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
3 2
2 0 1
1 1 1

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
2

result:

ok 3 lines

Test #32:

score: -14
Wrong Answer
time: 4ms
memory: 27312kb

input:

f785163bfcb92ce6ac387bba5d2f29a0e0f37f19
150 600
79 2 983288470
11 0 322623476
136 0 774411048
24 2 816724362
21 2 719492379
33 3 892309581
47 0 473707335
31 2 781573473
138 2 82986686
75 1 126753954
20 1 54988783
121 1 691958594
20 0 545299878
96 0 637112704
108 1 558914127
74 2 517404335
94 1 7420...

output:

938f2698235a9ff1d1d91e23381b68bec7bed102
OK
218199127648

result:

wrong answer 3rd lines differ - expected: '216624184325', found: '218199127648'

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%