HDU 3573 Buy Sticks欲張り

1243 ワード

簡単な問題です.コードを参照してください.
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
using namespace std;
int min(int a,int b){
    return a<b?a:b;    
}
int main(){
    int t,T;
    int a,b,c;
    scanf("%d",&T);
    int sum;
    for(t=1;t<=T;t++){
                      sum=0;
                      scanf("%d %d %d",&a,&b,&c);
                      
                      int tem=min(a/2,c);
                      sum+=tem;
                      a-=tem*2;
                      c-=tem;
                      
                      tem=min(a/2,b);
                      sum+=tem;
                      a-=tem*2;
                      b-=tem;                     
                      
                      if(c>1){
                              tem=c/2;
                              sum+=tem;
                              c-=tem*2;
                      }
                      
                      sum+=a/3;
                      a%=3;
                      
                      sum+=(int)ceil((double)(a+b+c)/2);
                      printf("Case %d: ",t);
                      printf("%d
",sum); } }