1 #include2 #define fp(i,l,r) for(register int i=(l);i<=(r);++i) 3 #define fd(i,l,r) for(register int i=(l);i>=(r);--i) 4 using namespace std; 5 inline int botposs(int a,int b,int pd){ 6 if(pd==1) return a>b?a:b; 7 if(pd==0) return a>b?b:a; 8 } 9 int main(){10 int dp[10000+20],w[10000+20],c[10000+20];11 int n,v;12 scanf("%d%d",&v,&n);13 fp(i,1,n){14 scanf("%d%d",&c[i],&w[i]);15 }16 fp(i,1,v){17 dp[i]=0;18 }19 fp(i,1,n){20 fd(j,v,c[i]){21 dp[j]=botposs(dp[j],dp[j-c[i]]+w[i],1);22 }23 }24 printf("%d",dp[v]);25 return 0;26 }
1 #include2 #define fp(i,l,r) for(register int i=(l);i<=(r);++i) 3 #define fd(i,l,r) for(register int i=(l);i>=(r);--i) 4 using namespace std; 5 int a,dp[1001]; 6 int n,m; 7 int main(){ 8 scanf("%d%d",&n,&m); 9 dp[0]=1;10 fp(i,1,n){11 scanf("%d",&a);12 fd(j,m,a){13 dp[j]+=dp[j-a];14 }15 }16 printf("%d",dp[m]);17 return 0;18 }