题目 2011: 电导流的矩形

题目描述:

地图上有若干个导电矩形,长度大小不一(矩形四个角的坐标x,y<=10000)而且电工觉得,反正矩形很标准,边都平行于坐标轴,所以矩形随便给两个对角的点就够了......这电工觉得你够聪明。

在某个位置有一个电针,而且放出了一股电流,只有包含(包括在边界上)了电针的矩形才有可能将这电流导流,而最终面积最大的矩形是导流的矩形。

求这个矩形是输入数据中给出的第几个矩形

代码:

java 复制代码
package lanqiao;

import java.math.BigInteger;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int arr[][] = new int[n][4];
        for(int i = 0;i < n;i ++)
        {
            for(int j = 0;j < 4;j ++)
            {
                arr[i][j] = sc.nextInt(); //构建矩形
            }
        }

        int x = sc.nextInt(),y = sc.nextInt();
        int tmparea = 0,index = 0; //tmparea为暂存最大面积,index记录最大面积的下标

        for(int i = 0;i < n;i ++)
        {
            int maxx = Math.max(arr[i][0],arr[i][2]),minx = Math.min(arr[i][0],arr[i][2]);
            int maxy = Math.max(arr[i][1], arr[i][3]),miny=Math.min(arr[i][1], arr[i][3]);
            int area =(maxx-minx)*(maxy-miny); //计算每个矩形的面积
            if(x>=minx&&x<=maxx&&y>=miny&&y<=maxy&&tmparea<area) { //若点在该矩形且该矩形面积比最大面积大则更新tempare及index
                tmparea = area;
                index = i;
            }
        }
        System.out.println(index + 1);
    }
}
相关推荐
LinHenrY1227几秒前
初识C语言(编译和链接)
c语言·开发语言·蓝桥杯
_OP_CHEN几秒前
【Python基础】(二)从 0 到 1 入门 Python 语法基础:从表达式到运算符的全面指南
开发语言·python
l1t1 分钟前
利用小米mimo为精确覆盖矩形问题C程序添加打乱函数求出更大的解
c语言·开发语言·javascript·人工智能·算法
@淡 定1 分钟前
线程安全的日期格式化:避免 SimpleDateFormat 并发问题
java
qq_12498707533 分钟前
基于springboot框架的小型饮料销售管理系统的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·spring·毕业设计
亭上秋和景清4 分钟前
strlen;strcpy ;strcat
算法
_OP_CHEN4 分钟前
【算法基础篇】(三十五)图论基础之最小生成树:从原理到实战,彻底吃透 Prim 与 Kruskal 算法
算法·蓝桥杯·图论·最小生成树·kruskal算法·prim算法·acm/icpc
LYFlied9 分钟前
【算法解题模板】-【回溯】----“试错式”问题解决利器
前端·数据结构·算法·leetcode·面试·职场和发展
我命由我1234510 分钟前
Python Flask 开发:在 Flask 中返回字符串时,浏览器将其作为 HTML 解析
服务器·开发语言·后端·python·flask·html·学习方法
csbysj202011 分钟前
Scala 类和对象
开发语言