zoukankan      html  css  js  c++  java
  • POJ2014 Flow Layout

     
    Time Limit: 1000MS   Memory Limit: 30000K
    Total Submissions: 3161   Accepted: 2199

    Description

    A flow layout manager takes rectangular objects and places them in a rectangular window from left to right. If there isn't enough room in one row for an object, it is placed completely below all the objects in the first row at the left edge, where the order continues from left to right again. Given a set of rectangular dimensions and a maximum window width, you are to write a program that computes the dimensions of the final window after all the rectangles have been placed in it. 

    For example, given a window that can be at most 35 units wide, and three rectangles with dimensions 10 x 5, 20 x 12, and 8 x 13, the flow layout manager would create a window that looked like the figures below after each rectangle was added. 

    The final dimensions of the resulting window are 30 x 25, since the width of the first row is 10+20 = 30 and the combined height of the first and second rows is 12+13 = 25.

    Input

    The input consists of one or more sets of data, followed by a final line containing only the value 0. Each data set starts with a line containing an integer, m, 1 <= m <= 80, which is the maximum width of the resulting window. This is followed by at least one and at most 15 lines, each containing the dimensions of one rectangle, width first, then height. The end of the list of rectangles is signaled by the pair -1 -1, which is not counted as the dimensions of an actual rectangle. Each rectangle is between 1 and 80 units wide (inclusive) and between 1 and 100 units high (inclusive).

    Output

    For each input set print the width of the resulting window, followed by a space, then the lowercase letter "x", followed by a space, then the height of the resulting window.

    Sample Input

    35
    10 5
    20 12
    8 13
    -1 -1
    25
    10 5
    20 13
    3 12
    -1 -1
    15
    5 17
    5 17
    5 17
    7 9
    7 20
    2 10
    -1 -1
    0
    

    Sample Output

    30 x 25
    23 x 18
    15 x 47

    Source

     
    调节心情用的水题。

    纯模拟。

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cmath>
     5 #include<cstring>
     6 #define LL long long
     7 using namespace std;
     8 const int mxn=500010;
     9 int read(){
    10     int x=0,f=1;char ch=getchar();
    11     while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    12     while(ch>='0' && ch<='9'){x=x*10+ch-'0';ch=getchar();}
    13     return x*f;
    14 }
    15 int limit=0;
    16 int now=0;
    17 int w=0;
    18 int h=0;
    19 int last=0;
    20 int main(){
    21     int x,y;
    22     while(1){
    23         limit=read();
    24         if(!limit)break;
    25         w=h=last=now=0;
    26         while(1){
    27             x=read();y=read();
    28             if(x==-1 && y==-1){
    29                 printf("%d x %d
    ",w,h);
    30                 break;
    31             }
    32             if(now+x<=limit){
    33                 now+=x;
    34                 w=max(w,now);
    35                 h=max(h,last+y);
    36             }
    37             else{
    38                now=x;
    39                w=max(now,w);
    40                last=h;
    41                h=last+y;
    42             }
    43 //            printf("now: %d %d
    ",w,h);
    44         }
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    12-factor应用和微服务架构应用的区别
    SAP云平台里Global Account和Sub Account的关系
    SAP成都研究院李三郎:SCP Application Router简介
    介绍两个好玩的和Github相关的Chrome扩展
    Java,JavaScript和ABAP通过代码取得当前代码的调用栈Callstack
    SAP CRM和C4C的内容管理(Content Management)
    CRM WebClient UI的浏览器打印实现
    通过ABAP代码判断当前系统类型,BYD还是S4 OP还是S4 Cloud
    使用ABAP批量下载Markdown源文件里的图片到本地
    ABAP下载的病毒扫描Virus Scan
  • 原文地址:https://www.cnblogs.com/SilverNebula/p/5944331.html
Copyright © 2011-2022 走看看