Two Seals codeforces 837c
2024-10-08 08:12:41
一个矩形a*b,若干子矩形,子矩形中选2个,不重叠能覆盖最大
思路:
枚举;
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define maxn 105
int n,xi,yi,ai[maxn],bi[maxn],ans;
inline void in(int &now)
{
char Cget=getchar();now=;
while(Cget>''||Cget<'') Cget=getchar();
while(Cget>=''&&Cget<='')
{
now=now*+Cget-'';
Cget=getchar();
}
}
int main()
{
in(n),in(xi),in(yi);
for(int i=;i<=n;i++) in(ai[i]),in(bi[i]);
for(int i=;i<=n;i++)
{
int a=xi-ai[i],b=yi-bi[i];
if(a>=&&b>=) for(int v=i+;v<=n;v++)
{
if(ai[v]<=a&&bi[v]<=yi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
if(ai[v]<=b&&bi[v]<=xi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
if(bi[v]<=a&&ai[v]<=yi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
if(bi[v]<=b&&ai[v]<=xi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
}
a=xi-bi[i],b=yi-ai[i];
if(a>=&&b>=)for(int v=i+;v<=n;v++)
{
if(ai[v]<=a&&bi[v]<=yi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
if(ai[v]<=b&&bi[v]<=xi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
if(bi[v]<=a&&ai[v]<=yi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
if(bi[v]<=b&&ai[v]<=xi) ans=max(ai[i]*bi[i]+ai[v]*bi[v],ans);
}
}
cout<<ans;
return ;
}
最新文章
- Django form
- mongoDB--1 概念
- 如何修改 SplendidCRM 页脚版权信息
- [iOS微博项目 - 1.5] - NavigationBar标题按钮
- C++ const 限定符
- SpringMVC Memcached 搭建WEB项目缓存框架
- 关于前台主键输入错误对后台hibernate方法的影响
- String Stringbuilder Stringbuffer的区别
- C# 文字转换最简单的方法
- 《开发技巧》WEB APP开发调试技巧
- Jenkins具体安装与构建部署使用教程
- 阿里云API网关(16)客户端请求的https支持
- 彻底关闭windows10自动更新解决方案
- vs code代码对齐快捷键
- Dynamics 365工作流报错:您无法登陆系统。原因可能是您的用户记录或您所属的业务部门在Microsoft Dynamics 365中已被禁用。
- openresty 集成lua-resty-mail +smtp2http 扩展灵活的mail 服务
- Unable to open debugger port (127.0.0.1:63777): java.net.BindException ";Address
- Network of Schools---poj1236(强连通分量)
- Android开发第二阶段(2)
- VBS小脚本_ 玩坏键盘的指示灯