zoukankan      html  css  js  c++  java
  • poj1017

    #include<stdio.h>
    int fmax(int i,int j){
    return i>j?i:j;
    }

    int main(){
    int s1,s2,s3,s4,s5,s6;
    int sum,tp,tp2;
    while(scanf("%d%d%d%d%d%d",&s1,&s2,&s3,&s4,&s5,&s6),s1+s2+s3+s4+s5+s6){
    sum=0;
    sum+=s6;//6*6的箱子;
    //s6=0;

    sum+=s5;//5*5的箱子,剩下的用1*1来填充
    //s5=0;
    s1=fmax(0,s1-11*s5);//剩下的用1*1来填充

    sum+=s4;//4*4的箱子,剩下的先用2*2再用1*1来填充
    tp=s2;
    s2=fmax(0,s2-(5*s4));//用2*2
    if(s2==0&&tp!=0)
    s1=fmax(0,s1-4*(s4*5-tp)); //s1=fmax(0,s1-(5-tp%5)*4);因为s4的箱子多出来的情况,所以注释里的s1是错误的


    sum+=(s3+3)/4;//4个3*3填充一个箱子
    tp=s3%4;//tp表示最后一个箱子已经填了几个3*3

    if(tp==1){//可以填充5个2*2
    if(s2==0){tp2=0;
    s1=fmax(0,s1-27);}
    if(s2==1){tp2=1;
    s1=fmax(0,s1-23);}
    if(s2==2){tp2=2;
    s1=fmax(0,s1-19);}
    if(s2==3){tp2=3;
    s1=fmax(0,s1-15);}
    if(s2==4){tp2=4;
    s1=fmax(0,s1-11);}
    if(s2>=5){tp2=5;
    s1=fmax(0,s1-7);}

    s2=fmax(0,s2-tp2);
    }//填好了2*2再填1*1
    else if(tp==2){
    if(s2==0){tp2=0;
    s1=fmax(0,s1-18);}
    if(s2==1){tp2=1;
    s1=fmax(0,s1-14);}
    if(s2==2){tp2=2;
    s1=fmax(0,s1-10);}
    if(s2>=3){tp2=3;
    s1=fmax(0,s1-6);}

    s2=fmax(0,s2-tp2);
    }
    else if(tp==3){
    if(s2==0){tp2=0;
    s1=fmax(0,s1-9);}
    if(s2>=1){tp2=1;
    s1=fmax(0,s1-5);}

    s2=fmax(0,s2-tp2);
    }

    sum+=(s2+8)/9;
    tp=s2%9;
    if(tp)
    s1=fmax(0,s1-(36-4*tp));
    sum+=(s1+35)/36;
    printf("%d\n",sum);
    }
    return 0;
    }

    keep moving...
  • 相关阅读:
    AutoComplete控件
    META httpequiv 大全
    十四条必知的手机电池充电技巧
    什么是套接字
    理解HTTP session原理及应用
    Adodb.Stream取得图像的高宽
    微软Windows 7测试版下载网上泄露
    Oracle新手學習
    Oracle字符串函数
    Oracle的Window服务启动时并不启动实例
  • 原文地址:https://www.cnblogs.com/xxx0624/p/2602202.html
Copyright © 2011-2022 走看看