UOJ Logo

NOI.AC

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#199322#2328. walkwosile100785ms56500kbC++11683b2023-12-10 10:59:422023-12-10 12:06:09

answer

#include<bits/stdc++.h>
using namespace std;
int n,x;
vector<int>f[100005]; 
int a[100005];
int main(){
	scanf("%d%d",&n,&x);
	for(int i=1;i<=n;i++)scanf("%d",&a[i]);
	for(int i=0;i<=n;i++)f[i].resize(x/max(1,i)+1,0x3f3f3f3f);
	for(int i=n;i>=0;i--){
		if(a[i]<f[i].size())f[i][a[i]]=min(f[i][a[i]],0);
		for(int j=0;j<f[i].size();j++){
			if(j<f[i+1].size() && f[i+1][j]+j+2<=x)f[i][j]=min(f[i][j],f[i+1][j]+j+2);
			if(j-a[i]>=0 && j-a[i]<f[i+1].size() && f[i+1][j-a[i]]+j-a[i]+2<=x)f[i][j]=min(f[i][j],f[i+1][j-a[i]]+j-a[i]+2);
		}
	}
	int ans=0;
	for(int i=0;i<f[0].size();i++)if(f[0][i]<=x)ans=i;
	printf("%d",ans);
	return 0;
	//quod erat demonstrandum
}

Details

小提示:点击横条可展开更详细的信息

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 8ms
memory: 19540kb

input:

12 1000000
282398 935019 648091 691566 702741 603584 939630 791726 343639 822182 831651 291644

output:

282398

result:

ok 1 number(s): "282398"

Test #2:

score: 0
Accepted
time: 8ms
memory: 19536kb

input:

12 1000000
419157 284950 271178 203225 69785 112829 3004 36496 96239 31000 24370 45877

output:

704107

result:

ok 1 number(s): "704107"

Test #3:

score: 0
Accepted
time: 13ms
memory: 19536kb

input:

12 1000000
67728 18877 17984 15810 8177 6653 12294 9947 2672 2311 6268 7712

output:

176433

result:

ok 1 number(s): "176433"

Test #4:

score: 0
Accepted
time: 9ms
memory: 19536kb

input:

12 1000000
10 4 6 6 6 10 9 3 2 7 8 7

output:

78

result:

ok 1 number(s): "78"

Test #5:

score: 0
Accepted
time: 16ms
memory: 19540kb

input:

12 1000000
0 0 0 0 0 0 0 0 0 0 0 0

output:

0

result:

ok 1 number(s): "0"

Test #6:

score: 0
Accepted
time: 16ms
memory: 19536kb

input:

12 1000000
1 1 1 1 1 1 1 1 1 1 1 1

output:

12

result:

ok 1 number(s): "12"

Test #7:

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

input:

12 1000000
100000 50000 33333 25000 20000 16666 14285 12500 11111 10000 9090 8333

output:

289207

result:

ok 1 number(s): "289207"

Subtask #2:

score: 20
Accepted

Test #8:

score: 20
Accepted
time: 2ms
memory: 3608kb

input:

500 1000
211 508 886 914 928 584 457 490 600 809 291 598 245 282 744 240 587 253 583 190 764 547 958...

output:

235

result:

ok 1 number(s): "235"

Test #9:

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

input:

500 1000
727 107 303 247 20 144 78 92 56 96 50 43 24 21 62 50 20 54 12 2 2 25 41 12 20 21 16 11 1 21...

output:

834

result:

ok 1 number(s): "834"

Test #10:

score: 0
Accepted
time: 2ms
memory: 3612kb

input:

500 1000
54 9 25 3 15 5 10 1 5 2 0 6 6 3 3 3 0 5 0 5 1 4 4 2 2 2 0 2 0 2 2 2 1 2 1 2 1 1 1 2 0 0 0 1...

output:

163

result:

ok 1 number(s): "163"

Test #11:

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

input:

500 1000
7 7 2 0 9 0 7 7 2 6 1 1 10 10 8 4 9 8 4 4 5 0 2 8 4 5 5 3 10 5 3 3 0 1 2 10 4 2 1 1 9 10 0 ...

output:

94

result:

ok 1 number(s): "94"

Test #12:

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

input:

500 1000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

0

result:

ok 1 number(s): "0"

Test #13:

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

input:

500 1000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

42

result:

ok 1 number(s): "42"

Test #14:

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

input:

500 1000
100 50 33 25 20 16 14 12 11 10 9 8 7 7 6 6 5 5 5 5 4 4 4 4 4 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 ...

output:

283

result:

ok 1 number(s): "283"

Subtask #3:

score: 25
Accepted

Test #15:

score: 25
Accepted
time: 27ms
memory: 43140kb

input:

5000 1000000
648326 778378 866487 793419 952901 147233 661818 311030 497933 764456 689108 468994 157...

output:

655878

result:

ok 1 number(s): "655878"

Test #16:

score: 0
Accepted
time: 37ms
memory: 43144kb

input:

5000 1000000
853063 17195 140515 20799 36699 85249 118216 86663 44968 39461 78546 59500 5814 67400 3...

output:

891996

result:

ok 1 number(s): "891996"

Test #17:

score: 0
Accepted
time: 41ms
memory: 43144kb

input:

5000 1000000
27465 25289 13636 11668 7336 15395 2095 5788 2717 7089 1116 3328 4638 564 1608 2838 111...

output:

148198

result:

ok 1 number(s): "148198"

Test #18:

score: 0
Accepted
time: 40ms
memory: 43144kb

input:

5000 1000000
0 6 4 4 10 4 5 3 10 10 7 5 1 1 10 5 1 8 10 5 5 4 9 10 6 3 7 1 1 2 10 8 10 0 5 5 3 9 1 9...

output:

3195

result:

ok 1 number(s): "3195"

Test #19:

score: 0
Accepted
time: 30ms
memory: 43140kb

input:

5000 1000000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

0

result:

ok 1 number(s): "0"

Test #20:

score: 0
Accepted
time: 41ms
memory: 43140kb

input:

5000 1000000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

1411

result:

ok 1 number(s): "1411"

Test #21:

score: 0
Accepted
time: 44ms
memory: 43140kb

input:

5000 1000000
100000 50000 33333 25000 20000 16666 14285 12500 11111 10000 9090 8333 7692 7142 6666 6...

output:

289207

result:

ok 1 number(s): "289207"

Subtask #4:

score: 45
Accepted

Test #22:

score: 45
Accepted
time: 59ms
memory: 56496kb

input:

100000 1000000
451184 326001 970878 369564 645562 309372 896511 862054 375145 52106 254628 253141 58...

output:

503290

result:

ok 1 number(s): "503290"

Test #23:

score: 0
Accepted
time: 57ms
memory: 56496kb

input:

100000 1000000
396218 439951 69523 50101 84360 87747 74335 89791 87982 8183 83706 79521 58009 5707 2...

output:

530587

result:

ok 1 number(s): "530587"

Test #24:

score: 0
Accepted
time: 83ms
memory: 56496kb

input:

100000 1000000
45811 41859 27348 15587 72 5882 1517 8863 3740 6049 5680 2346 5308 7009 3321 4969 131...

output:

191972

result:

ok 1 number(s): "191972"

Test #25:

score: 0
Accepted
time: 64ms
memory: 56496kb

input:

100000 1000000
0 0 6 10 2 9 4 7 7 4 3 1 8 9 3 10 8 9 9 4 8 4 4 7 6 7 0 1 9 0 9 7 4 2 2 10 4 7 1 6 10...

output:

3137

result:

ok 1 number(s): "3137"

Test #26:

score: 0
Accepted
time: 53ms
memory: 56500kb

input:

100000 1000000
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0...

output:

0

result:

ok 1 number(s): "0"

Test #27:

score: 0
Accepted
time: 70ms
memory: 56500kb

input:

100000 1000000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1...

output:

1411

result:

ok 1 number(s): "1411"

Test #28:

score: 0
Accepted
time: 58ms
memory: 56496kb

input:

100000 1000000
100000 50000 33333 25000 20000 16666 14285 12500 11111 10000 9090 8333 7692 7142 6666...

output:

289207

result:

ok 1 number(s): "289207"

Extra Test:

score: 0
Extra Test Passed