zoukankan      html  css  js  c++  java
  • PKU3327

    WA了N次...
    #include<string.h>
    #include 
    <stdio.h>

    struct Rect
    {
        
    int w, d;
    }
    ;

    int c, w, d, cnt, p, s;
    Rect rect[
    110];
    int area[110];

    void cut()
    {
        
    int hw=rect[p].w, hd=rect[p].d ;
        s
    %=(2*(hw+hd));
        rect[cnt]
    =rect[p];
        
    if(s>0 && s<hw)
        
    {
            rect[p].w
    =s,rect[p].d=hd;
            rect[cnt].w
    =hw-rect[p].w;
        }

        
    if(s>hw && s<hw+hd)
        
    {
            rect[p].w
    =hw,rect[p].d=s-hw;
            rect[cnt].d
    =hd-rect[p].d;
        }

        
    if(s>hw+hd && s<2*hw+hd)
        
    {
            rect[p].w
    =s-hw-hd,rect[p].d=hd;
            rect[cnt].w
    =hw-rect[p].w;
        }

        
    if(s>2*hw+hd && s<2*hw+2*hd)
        
    {
            rect[p].w
    =hw,rect[p].d=s-2*hw-hd;
            rect[cnt].d
    =hd-rect[p].d;
        }

        
    //
        if(rect[p].w * rect[p].d > rect[cnt].d * rect[cnt].w)
        
    {
            Rect hr
    =rect[p];
            rect[p]
    =rect[cnt];
            rect[cnt]
    =hr;
        }
          Rect hr1=rect[p];
          int i;
          for(i=p;i<cnt-1;i++)
              rect[i]=rect[i+1];
          rect[cnt-1]=hr1;

    }


    int main()
    {
        
    while(scanf("%d%d%d"&c, &w, &d)==3)
        
    {
            
            
            
    if(c==0 && w==0 && d==0)break;
            cnt
    =1;
            
    int i, j; 
            
    for(i=0;i<110;i++)
                rect[i].d
    =rect[i].w=area[i]=0;

            rect[
    1].w=w,rect[1].d=d;

            
    for(i=1;i<=c;i++)
            
    {
                scanf(
    "%d%d",&p,&s);
                cnt
    ++;
                cut();
            }

            
    for(i=1;i<=c+1;i++)
            
    {
            
    //    printf("%d :  %d , %d  \n",i,rect[i].w,rect[i].d);
                int harea=rect[i].w * rect[i].d;
                
    for(j=i;j>=1;j--)
                
    {
                    area[j]
    =area[j-1];
                    
    if(harea>area[j])
                    
    {
                        area[j]
    =harea;
                        
    break;
                    }

                }

            }


            
    for(i=1;i<=c+1;i++)
            
    {
                
    if(i!=1)printf(" ");
                printf(
    "%d",area[i]);
            }

            printf(
    "\n");
        }

        
    return 0;
    }

  • 相关阅读:
    [转载]在sharepoint里增加PDF图标显示收藏主题
    CuratorFramework开源Zookeeper快速开发框架介绍
    Zookeeper和CuratorFramework实践之:分布式消息队列
    Zookeeper和CuratorFramework实践系列之: 配置管理
    JS 文字向上滚动代码
    sql递归查询问题
    双线单IP和双线双IP机房的区别
    js获取标准北京时间
    ftp 21端口被占用解决办法
    "由于没有远程桌面授权服务器可以提供许可证..."不能远程桌面解决方法
  • 原文地址:https://www.cnblogs.com/SQL/p/913090.html
Copyright © 2011-2022 走看看