#include int memo[50][301],done[50][301]; int N,C,V,S[1500],T[1500],Y[1500],M[1500]; int min(int a,int b){ if(a>b){return b;}else{return a;} } int dp(int a,int b){ int i,an; if(done[a][b]==1){return memo[a][b];} an = 100000000; for(i=0;i<=V;i++){ if(S[i] == a+1 && b-Y[i]>=0){ an = min(an, M[i]+dp(T[i]-1,b-Y[i])); } } memo[a][b] = an; done[a][b] = 1; return memo[a][b]; } int main(void){ int i,j; scanf("%d %d %d",&N,&C,&V); for(i=0;i