1 solutions

  • 0
    @ 2025-11-5 20:17:26

    C :

    #include<stdio.h>
    #define T -5000000000
    int main()
    {
        	int n,m,v,i,j;
            long long d[50000],c[2000],w[2000];
        	scanf("%d",&n);
        	while(n--)
        	{
            		scanf("%d%d",&m,&v);
            		for(i=0;i<m;i++)
            			scanf("%lld%lld",&c[i],&w[i]);
            			d[0]=0;
            			for(j=1;j<=v;j++)
                           d[j]=T;
            		for(i=0;i<m;i++)
            		{
            			for(j=c[i];j<=v;j++)
            				if(d[j]<d[j-c[i]]+w[i])
            				     d[j]=d[j-c[i]]+w[i];
            		}
               if(d[v]>0)	printf("%lld\n",d[v]);
               else   printf("NO\n");
        	}
    
        	return 0;
    }
    

    C++ :

    #include<stdio.h>
    #define T -5000000000
    int main()
    {
        	int c,m,n,i,j;
            long long f[50000],w[2000],v[2000];
        	scanf("%d",&c);
        	while(c--)
        	{
            		scanf("%d%d",&n,&m);
            		for(i=0;i<n;i++)
            			scanf("%lld%lld",&w[i],&v[i]);
            			f[0]=0;
            			for(j=1;j<=m;j++)
                           f[j]=T;
            		for(i=0;i<n;i++)
            		{
            			for(j=w[i];j<=m;j++)
            				if(f[j]<f[j-w[i]]+v[i])
            				     f[j]=f[j-w[i]]+v[i];
            		}
               if(f[m]>0)	printf("%lld\n",f[m]);
               else   printf("NO\n");
        	}
    
        	return 0;
    }
    

    Information

    ID
    20229
    Time
    3000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By