1 solutions

  • 0
    @ 2025-12-15 19:42:04
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    int  t,m,sz[101],w[101],zs[101][1001]; 
    signed main(){
    cin>>t>>m;
    for(int i=1;i<=m;i++)
    cin>>sz[i]>>w[i];
    for(int i=1;i<=m;i++)
    {
    		if(sz[i]>t)continue;
    				for(int j=t;j>=0;j--){
    							zs[i][j]=zs[i-1][j];
    				}
    		
    		for(int j=t;j>=sz[i];j--){
    
    	
    			zs[i][j]=max(zs[i][j],zs[i][j-sz[i]]+w[i]);
    		//cout<<zs[i-1][j]<<" "<<i<<"  "<<j<<"  "<<j-sz[i]<<"  "<<w[i]<<" "<<	zs[i][j]<<endl; 
    	
    		}
    	
    }
    
    	int ma=0;
    	for(int i=1;i<=t;i++){
    		ma=max(ma,zs[m][i]);
    	}	
    	cout<<ma;
    }
    
    
    
    • 1

    Information

    ID
    102
    Time
    1000ms
    Memory
    512MiB
    Difficulty
    10
    Tags
    # Submissions
    5
    Accepted
    1
    Uploaded By