1 solutions

  • 0
    @ 2025-11-5 19:32:00

    C :

    #include<stdio.h>
    #include<string.h>
    int max(int a, int b)
    {
    	if(a>b)
    	return a;
    	return b;
    }
    int min(int a, int b)
    {
    	if(a<b)
    	return a;
    	return b;
    }
    main()
    {
    	int r,g,b,sum[3],result,i,min1;
    	while(scanf("%d%d%d",&r,&g,&b)!=EOF)
    	{
    		memset(sum,0,sizeof(sum));
    		min1=min(min(r,g),b);
    		if(min1<3)
    		{
    		for( i=0;i<=min1;i++)
    			sum[i]=(r-i)/3+(g-i)/3+(b-i)/3+i;
    		result=max(max(sum[0],sum[1]),sum[2]);
    		}
    		if(min1>=3)
    		{
    		for( i=0;i<3;i++)
    			sum[i]=(r-i)/3+(g-i)/3+(b-i)/3+i;
    		result=max(max(sum[0],sum[1]),sum[2]);
    		}
    		printf("%d\n",result);
    	}
    }
    

    C++ :

    #include<stdio.h>
    
    long long  maxNum(long long a, long long  b){
        return a > b ? a : b;
    }
    
    int main(){
        int r, g, b, i, j;
        long long ans, tem;
        //freopen("1.in", "r", stdin);
    	//freopen("1.out", "w", stdout);
        while(scanf("%d%d%d", &r, &g, &b) != EOF){
            ans = r / 3 + g / 3 + b / 3;
            for(i = 1; i < 3; i++){
                r--; b--; g--;
                if(r < 0 || g < 0 || b < 0){
                    break;
                }
                tem = i + r / 3 + g / 3 + b / 3;
                ans = maxNum(ans, tem);
            }
            printf("%lld\n", ans);
        }
        return 0;
    } 
    
    • 1

    Information

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