1 solutions

  • 0
    @ 2025-3-3 16:28:36

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    /*
    	w(a,b,c)
    	a<=0 || b<=0 || c<=0    w(a,b,c) = 1
    	a>20 || b>20 || c>20    w(a,b,c)= w(20,20,20);
    	w(a,b,c)=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1, b-1,c-l)
    */ 
    int s[101][101][101];
    
    int w(int a,int b,int c){
    	if(a<=0 || b<=0 || c<=0){
    		s[0][0][0] = 1;
    		return 1;
    	}
    	else if(a>20 || b>20 || c>20){
    		if(s[20][20][20]==0) s[20][20][20] = w(20,20,20);
    		return s[20][20][20];
    	}
    	else {
    		if(s[a-1][b][c]==0)  s[a-1][b][c] = w(a-1,b,c);
    		if(s[a-1][b-1][c]==0)  s[a-1][b-1][c] = w(a-1,b-1,c);
    		if(s[a-1][b][c-1]==0)  s[a-1][b][c-1] = w(a-1,b,c-1);
    		if(s[a-1][b-1][c-1]==0)  s[a-1][b-1][c-1] = w(a-1, b-1,c-1);
    		return s[a-1][b][c] + s[a-1][b-1][c] + s[a-1][b][c-1] - s[a-1][b-1][c-1];
    	}
    }
    
    int main(){
    	int a,b,c;
    	cin>>a>>b>>c;
    	cout<<w(a,b,c);
    	return 0;
    }
    
    
    • 1

    Information

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