QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#625104#5303. No Bug No GameSingularityWA 58ms355416kbC++141.2kb2024-10-09 17:28:362024-10-09 17:28:37

Judging History

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

  • [2024-10-09 17:28:37]
  • 评测
  • 测评结果:WA
  • 用时:58ms
  • 内存:355416kb
  • [2024-10-09 17:28:36]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define db double
const int N=3e5+5;
const int M=3e3+5;
const int INF=1e9+7;

int n,k;
int f1[M][M][2]={0};
int f2[M][M][2]={0};
int p[M],w[M][M];

void solve()
{
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>p[i];
		for(int j=1;j<=p[i];j++){
			cin>>w[i][j];
		}
	}
	for(int i=1;i<=n;i++){
		for(int j=p[i];j<=k;j++){
			f1[i][j][0]=max(f1[i-1][j][1],f1[i-1][j][0]);
			f1[i][j][1]=max(f1[i-1][j-p[i]][1],f1[i-1][j-p[i]][0])+w[i][p[i]];
		}
	}
	for(int i=n;i>=1;i--){
		for(int j=p[i];j<=k;j++){
			f2[i][j][0]=max(f2[i+1][j][1],f2[i+1][j][0]);
			f2[i][j][1]=max(f2[i+1][j-p[i]][1],f2[i+1][j-p[i]][0])+w[i][p[i]];
		}
	}
	int ans=-INF;
	for(int i=0;i<=k;i++){
		ans=max(ans,max(f1[n][i][1],f1[n][i][0]));
	}
	for(int i=1;i<=n;i++){
		for(int pp=1;pp<p[i];pp++){
			int temp=0;
			for(int j=0;j<=k-pp;j++){
				temp=max(temp,f1[i][j][0]+f2[i][k-pp-j][0]);
				temp=max(temp,f2[i][j][0]+f1[i][k-pp-j][0]);
			}
			ans=max(ans,temp+w[i][pp]);
		}
	}
	cout<<ans<<endl;
}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int T = 1;
    // cin >> T;
    while (T--) {
        solve();
    }
    return 0;
}
/*
*/

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

4 5
2 1 3
2 1 1
2 3 1
2 1 3

output:

9

result:

ok 1 number(s): "9"

Test #2:

score: -100
Wrong Answer
time: 58ms
memory: 355416kb

input:

3000 3000
10 70562 30723 79371 82224 63977 3362 26909 96449 48163 66159
4 18007 33590 80674 91139
4 10304 31694 70745 50656
10 63090 17226 13187 73881 38137 15237 55750 82751 75854 39658
8 95640 66120 87735 36388 44046 92415 6952 94772
9 60565 27904 98726 87052 35768 25453 14563 34273 92501
10 66332...

output:

68235226

result:

wrong answer 1st numbers differ - expected: '68279788', found: '68235226'