Submission #18152

#TimeUsernameProblemLanguageResultExecution timeMemory
18152cometSchools (IZhO13_school)C++98
5 / 100
76 ms41172 KiB
#include <cstdio> #include <algorithm> #include <cstring> using namespace std; typedef long long ll; int N,M,S; ll d[501][101][101]; ll a[501],b[501]; ll f(int p,int x,int y){ if(p==N){ if(x<M||y<S)return -1e18; return 0; } if(x==M&&y==S)return f(p+1,x,y); if(x==M)return f(p+1,x,y+1)+b[y]; if(y==S)return f(p+1,x+1,y)+a[x]; ll& ret=d[p][x][y]; if(~ret)return ret; return ret=max(f(p+1,x+1,y)+a[x],f(p+1,x,y+1)+b[y]); } int main(){ scanf("%d%d%d",&N,&M,&S); for(int i=0;i<N;i++){ scanf("%lld%lld\n",&a[i],&b[i]); } memset(d,-1,sizeof(d)); printf("%lld\n",f(0,0,0)); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...