题目 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);
    }
}
相关推荐
shandianchengzi3 分钟前
【小白向】错位排列|图文解释公考常见题目错位排列的递推式Dn=(n-1)(Dn-2+Dn-1)推导方式
笔记·算法·公考·递推·排列·考公
I_LPL4 分钟前
day26 代码随想录算法训练营 回溯专题5
算法·回溯·hot100·求职面试·n皇后·解数独
Yeats_Liao5 分钟前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
墨雪不会编程6 分钟前
C++之【深入理解Vector】三部曲最终章
开发语言·c++
怒放吧德德6 分钟前
后端 Mock 实战:Spring Boot 3 实现入站 & 出站接口模拟
java·后端·设计
cpp_25019 分钟前
P9586 「MXOI Round 2」游戏
数据结构·c++·算法·题解·洛谷
浅念-13 分钟前
C语言编译与链接全流程:从源码到可执行程序的幕后之旅
c语言·开发语言·数据结构·经验分享·笔记·学习·算法
biyezuopinvip18 分钟前
基于Spring Boot的企业网盘的设计与实现(任务书)
java·spring boot·后端·vue·ssm·任务书·企业网盘的设计与实现
脸大是真的好~21 分钟前
EasyExcel的使用
java·excel
小宋102123 分钟前
Java 项目结构 vs Python 项目结构:如何快速搭一个可跑项目
java·开发语言·python