QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#873272#7739. KnapsackTighnariWA 1ms3840kbC++141.2kb2025-01-26 11:16:222025-01-26 11:16:24

Judging History

This is the latest submission verdict.

  • [2025-01-26 11:16:24]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 3840kb
  • [2025-01-26 11:16:22]
  • Submitted

answer

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,sum,k;
struct node{
	long long w,v;
}a[5010];
long long f[10010];
long long ans=-1e18;
int bp=1;
bool vis[5010];
deque<long long> que;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
//	freopen("in.txt","r",stdin);
	cin>>n>>sum>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i].w>>a[i].v;
	}
	for(int i=1;i<=n;i++){
		for(int j=sum;j>=a[i].w;j--){
			f[j]=max(f[j],f[j-a[i].w]+a[i].v);
		}
	}
	ans=f[sum];
	sort(a+1,a+1+n,[](node x,node y){ return x.v > y.v; });
	for(int i=1,tw=sum;i<=n && tw>0;i++){
		for(int j=tw;j>=a[i].w;j--){
			if(f[j]==f[j-a[i].w]+a[i].v){
				vis[i]=1;
				tw-=a[i].w;
				break;
			}
		}
	}
	for(int i=1;i<=n;i++){
		bool flag=0;
		if(vis[i]) continue;
		if(bp<=k){
			ans+=a[i].v;
			while(!que.empty() && que.back()>a[i].v) que.pop_back();
			que.push_back(a[i].v);
			flag=1;
		}
		else if(bp>k){
			if(!que.empty()){
				if(a[i].v>que.front()){
					ans+=a[i].v-que.front();
					que.pop_front();
					while(!que.empty() && que.back()>a[i].v) que.pop_back();
					que.push_back(a[i].v);
				}
			}
		}
		if(flag) bp++;
	}
	cout<<ans<<endl;
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3584kb

input:

4 10 1
9 10
10 1
3 5
5 20

output:

35

result:

ok 1 number(s): "35"

Test #2:

score: 0
Accepted
time: 1ms
memory: 3584kb

input:

5 13 2
5 16
5 28
7 44
8 15
8 41

output:

129

result:

ok 1 number(s): "129"

Test #3:

score: 0
Accepted
time: 1ms
memory: 3712kb

input:

10 50 1
44 182173741
38 163268500
36 114173760
30 521894533
25 89514235
12 516184197
42 971377551
35 28242326
31 480227821
31 388523197

output:

2009456281

result:

ok 1 number(s): "2009456281"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3712kb

input:

10 100 3
23 51015869
9 981426050
76 243762017
64 128189636
4 718411601
48 250140255
17 340478117
68 262055220
40 370503079
4 547232664

output:

3765024872

result:

ok 1 number(s): "3765024872"

Test #5:

score: 0
Accepted
time: 1ms
memory: 3712kb

input:

10 500 10
430 981427684
100 458631577
32 453298334
393 716958962
82 120486064
393 561149128
182 518807793
293 950335710
332 159193263
331 280711850

output:

5201000365

result:

ok 1 number(s): "5201000365"

Test #6:

score: 0
Accepted
time: 1ms
memory: 3840kb

input:

10 3000 10
1325 563890842
2007 190665722
1393 874490922
548 279594682
1380 155046921
2666 894516819
770 740325614
2735 643777488
2451 754155860
1068 138544189

output:

5235009059

result:

ok 1 number(s): "5235009059"

Test #7:

score: 0
Accepted
time: 0ms
memory: 3712kb

input:

10 10000 5
108 735534045
6250 87364128
3071 66920092
9343 555321302
9070 759896065
9843 146885261
3083 364637443
7088 370871572
7802 754417134
3125 697204945

output:

4451687859

result:

ok 1 number(s): "4451687859"

Test #8:

score: -100
Wrong Answer
time: 0ms
memory: 3712kb

input:

100 50 61
24 517916473
33 497071404
40 343150837
13 559776223
2 941245278
27 987936903
7 403293890
26 68412861
28 683505315
6 173482637
31 220799032
29 815472376
42 426462445
25 470177395
43 818534622
26 137556071
15 308105056
27 745044655
28 309413241
11 61130780
36 963194467
19 701095156
5 9347020...

output:

45198386194

result:

wrong answer 1st numbers differ - expected: '44747553879', found: '45198386194'