#include<iostream>
#include<algorithm>
using namespace std;
int t,n,m;
int dp[105][10005];//在第i天最少欠了i时最后能获得的金币最大值
int p[105][105];
int main()
{
cin>>t>>n>>m;
for(int i=1;i<=t;i++)
for(int j=1;j<=n;j++)
scanf("%d",p[i]+j);
if(t==1)
cout<<m;
else if(n==1)
{
for(int i=1;i<t;i++)
if(p[i][1]<p[i+1][1])
m=m%p[i][1]+m/p[i][1]*p[i+1][1];
cout<<m;
}
else
{
for(int i=2;i<=t;i++)
for(int j=1;j<=n;j++)
for(int z=0;z<=m;z++)
{
if(p[i][j]<p[i-1][j]||z<p[i-1][j])
dp[i][z]=max(dp[i][z],dp[i-1][z]);
else
dp[i][z]=max(dp[i][z],dp[i-1][z-p[i-1][j]]+p[i][j]-p[i-1][j]);
}
cout<<dp[t][m];
}
return 0;
}
WA也总比TLE好一点
麻烦各位大佬看看哪里错了谢谢