📄 3251327_wa.cpp
字号:
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
int re[2][102];
int n,k,t,i,j,mmm=0,T,m;
struct input
{int time,prosperity,stoutness;
};
input x[100];
int max(int a,int b,int c=0)
{return (a>b?a:b)>c?(a>b?a:b):c;}
int compare(const void *a,const void *b)
{ if ( ((input*)a)->time > ((input*)b)->time ) return 1;
if ( ((input*)a)->time < ((input*)b)->time ) return -1;
else return 0;
}
int main ()
{memset(re,0,102*2);
cin>>n>>k>>t;
for(i=0;i<n;i++) cin>>x[i].time;
for(i=0;i<n;i++) cin>>x[i].prosperity;
for(i=0;i<n;i++) cin>>x[i].stoutness;
qsort(x,n,sizeof(input),compare);
T=0;
for(i=0;i<=t;i++)
{while(x[T].time==i) {re[1][x[T].stoutness]+=x[T].prosperity;T++;}
if(i!=0)
{
for(j=0;j<=k&&j<=i;j++)
{if(j==0) re[1][j]+=max(re[0][j],re[0][j+1]);
else re[1][j]+=max(re[0][j-1],re[0][j],re[0][j+1]);
}
}
for(m=1;m<=k;m++) {re[0][m]=re[1][m];re[1][m]=0;}
}
for(j=1;j<=k;j++)
{if(re[0][j]>mmm) mmm= re[0][j];}
cout<<mmm;
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -