1 solutions

  • 0
    @ 2025-11-5 20:14:12

    C++ :

    #include <iostream>
    #include <cstring>
    #include <string>
    using namespace std;
    
    int dp[1009][11];
    
    int main()
    {
    	int testcase;
    	while(cin>>testcase && testcase!=0)
    	{
    		memset(dp,0,sizeof(dp));
    		int totaltime=-0x3f3f3f3f;
    		int pietime,position;
    		while(testcase--)
    		{
    			scanf("%d%d",&position,&pietime);
    			dp[pietime][position]++;
    			if(pietime>totaltime)
    				totaltime=pietime;
    		}
    		for(int i=totaltime;i>=0;i--)
    		{
    			dp[i][0]+=max(dp[i+1][0],dp[i+1][1]);
    			for(int j=1;j<=9;j++)
    			{
    				dp[i][j]+=max(max(dp[i+1][j+1],dp[i+1][j]),dp[i+1][j-1]);
    				
    			}
    			dp[i][10]+=max(dp[i+1][10],dp[i+1][9]);
    			
    		}
    		cout<<dp[0][5]<<endl;
    	}
    	
    	
    	return 0;
    }
    
    
    • 1

    Information

    ID
    20166
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By