zoukankan      html  css  js  c++  java
  • Problem: [USACO2018 Jan]Blocked Billboard II

    Problem: [USACO2018 Jan]Blocked Billboard II

    Time Limit: 1 Sec Memory Limit: 128 MB

    Description

    奶牛Bassie想要覆盖一大块广告牌,她在之前已经覆盖了一小部分广告牌(但覆盖的这块面积不一定在广告牌上)
    现在她要取一块足够大的布来将剩下的部分覆盖,问至少要多大的矩形的布才能覆盖剩下的广告牌。

    Input

    输入共两行。
    第一行四个整数,l1,r1,l2,r1,描述广告牌左下和右上两个坐标(l1,r1)和(l2,r2)。
    第二行四个整数,x1,y1,x2,y2,描述覆盖的位置的左下和右上两个坐标(x1,y1)和(x2,y2)。
    所有数值都在-1000~1000范围内。

    Output

    一行一个整数,表示需要的最小的矩形的布。

    Sample Input

    2 1 7 4
    5 -1 10 3

    Sample Output

    15
    代码如下·

    #include<stdio.h>
    int l1,r1,l2,r2,x1,y1,x2,y2,sum,a,b,c,d;
    int main() {
        scanf("%d %d %d %d %d %d %d %d",&l1,&r1,&l2,&r2,&x1,&y1,&x2,&y2);
        if(l1>x1&&r1>y1) {sum++;a=1;}
        if(l1>x1&&r2<y2) {sum++;b=1;}
        if(l2<x2&&r1>y1) {sum++;c=1;}
        if(l2<x2&&r2<y2) {sum++;d=1;}
        switch(sum) {
            case 0:{
                printf("%d",(l2-l1)*(r2-r1));
                break;
            }
            case 1:{
                printf("%d",(l2-l1)*(r2-r1));
                break;
            }
            case 2:{
                if(a&&b) printf("%d",(l2-x2)*(r2-r1));
                if(a&&c) printf("%d",(l2-l1)*(r2-y2));
                if(b&&d) printf("%d",(l2-l1)*(y1-r1));
                if(c&&d) printf("%d",(x1-l1)*(r2-r1));
                break;
            }
            case 4:{
                printf("%d",0);
                break;
            }
        }
    }
    
  • 相关阅读:
    android studio 开发环境配置
    解决 php-cgi 启动时提示缺少 msvcr110.dll 的问题
    PHP5.5 + IIS + Win7的配置
    PHP版本VC6和VC9、Non Thread Safe和Thread Safe的区别
    [6]Telerik TreeView 复选框
    详解.NET IL代码(一)
    第三章 续:时间控件(TimePicker)
    第二章 时间控件(DateTime Picker)
    jquery常用方法
    RESTClient
  • 原文地址:https://www.cnblogs.com/ZhaoChongyan/p/11740445.html
Copyright © 2011-2022 走看看